Сортировка классов по одному из полей - C#
Формулировка задачи:
есть List<Employee>
у работника есть фамилия и имя.
Нужно выполнить сортировку по фамилии и, если фамилии совпадают, то по имени еще.
employees.Sort((x, y) => string.Compare(x.SurName, y.SurName)); - подходила бы, если не нужно было делать на проверку совпадения фамилий.
на java это делалось с помощью компаратора:
подскажите что-нить эквивалентное этому
public Comparator<Employee> abc = new Comparator<Employee>() { public int compare(Employee r1, Employee r2) { int compare = r1.getSurname().compareTo(r2.getSurname()); if (compare != 0) { return compare; } return r1.getName().compareTo(r2.getName()); } };
Решение задачи: «Сортировка классов по одному из полей»
textual
Листинг программы
var employees = new List<Employee> { new Employee {Name = "John", SurName = "Smith"}, new Employee {Name = "Adam", SurName = "Smith"}, new Employee {Name = "Adam", SurName = "Backer"} }; employees.Sort((e1, e2)=> { var res = e1.SurName.CompareTo(e2.SurName); if (res == 0) res = e1.Name.CompareTo(e2.Name); return res; }); ... class Employee { public string Name { get; set; } public string SurName { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д