Сортировка классов по одному из полей - 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; }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы