Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
802 / 52 / 2
Регистрация: 01.12.2012
Сообщений: 227
1

Сортировка классов по одному из полей

07.02.2016, 23:07. Показов 3785. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть List<Employee>
у работника есть фамилия и имя.
Нужно выполнить сортировку по фамилии и, если фамилии совпадают, то по имени еще.
employees.Sort((x, y) => string.Compare(x.SurName, y.SurName)); - подходила бы, если не нужно было делать на проверку совпадения фамилий.
на java это делалось с помощью компаратора:
Java
1
2
3
4
5
6
7
8
9
10
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());
        }
 
    };
подскажите что-нить эквивалентное этому
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2016, 23:07
Ответы с готовыми решениями:

Проверка на наличие определенного класса в листе классов по одному из его полей
Есть класс Person, у него есть поля int ID и string name. Есть List&lt;Person&gt; lp. Каким образом...

Сортировка массива обьектов по одному из полей
Есть коллекция обьектов. public class Book { private string author { get; set;...

Сортировка массива по одному из полей внутренних обьектов
Классы: abstract class Worker { public Worker(string Name) { ...

Массив разных классов. Как добратся до всех полей этих классов?
Все классы имеют общего предка. Экземпляры этих классов запихнуты в один массив нужно както...

1
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
07.02.2016, 23:37 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от pesik Посмотреть сообщение
Нужно выполнить сортировку по фамилии и, если фамилии совпадают, то по имени еще.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            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; }
        }
1
07.02.2016, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 23:37
Помогаю со студенческими работами здесь

Сортировка по одному из полей
Здравствуйте! Подскажите, пожалуйста, как сделать сортировку по одному из полей. Никак в голову не...

Сортировка по одному из полей класса
Всем привет. Я сделал вот такой список. Вопрос как мне его отсортировать, к примеру, по Id и по...

Сортировка json по одному из полей
привет! можно ли как-то отсортировать json по одному из полей? что бы по возрастанию были...

Сортировка коллекции по одному из полей
Есть коллекция. public List&lt;worker&gt; Workers = new List&lt;worker&gt;(); worker содержит поля: public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru