Сортировка классов по одному из полей - 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; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д