using System.Collections.Generic;
public static void Main()
List<Teacher> teacher = new List<Teacher>();
teacher.Add(new Teacher(1, "Teacher A", 4, 2000));
teacher.Add(new Teacher(2, "Teacher B", 3, 3000));
teacher.Add(new Teacher(3, "Teacher C", 5, 5000));
teacher.Add(new Teacher(4, "Teacher D", 3, 4000));
teacher.Add(new Teacher(5, "Teacher E", 3, 7000));
var teachArr = teacher.ToArray();
var threeYearTeachArr = teacher.Where(t => t.year == 3).OrderByDescending(t => t.salary).ToArray();
for( int i = 0, threes = 0; i < teachArr.Length && threes < threeYearTeachArr.Length; i++ )
if( teachArr[i].year == 3 ) teachArr[i] = threeYearTeachArr[threes++];
foreach( var t in teachArr )
Console.WriteLine($"{t.id} {t.name} | {t.year} | {t.salary}");
public int id { get; set; }
public string name { get; set; }
public int year { get; set; }
public double salary { get; set; }
public Teacher(int id, string name, int year, double salary)