Давайте рассмотрим Generic List в элементах которого есть поле - дата. Допустим вы хотите отсортировать Generic List по полю дата, и хотите сделать это самым простым способом. Здесь написано как это сделать. Я добавил DropDownList с цельэ продемонстрировать результаты:
Недавно я работал над интересной проблемой, которая включала разделение коллекции строк на группы.
Мы имели большой набор e-mail-ов помещенную в коллекцию строк.
Задача была выбирать по 10 e-mail-ов за раз и отсылать их на обработку.
Здесь некий LINQ код, который может быть полезен, если у вас похожие требования - не использовать циклы для групировки.
Код выше использует оператор LINQ GroupBy() для выделения по 3 мыла за раз и отсылки их на обработку.
Помните, что group...by выражение переводится как вызов GroupBy.
Давайте рассмотрим пример метода Join в LINQ и C#.
Метод Join
выполняет внутреннее объединение над двумя последовательностями,
корреляция элементов этих последовательностей основывается на совпадении ключей.
Это называется объединение по равенству, потому как мы проверяем на равенсво, используя оператор равенства.
Каr вы знаете из реляционных баз данных, внутреннее объединение
сопоставляет каждому элементу первой последовательности, соответствующий элемент из второй последовательности.
Это если в сравнении участвуют уникальные ключи. Если соответствующего элемента второй последовательности нет, то
элемент первой последовательности также на попадает в выходную последовательность.
Метод Join() в LINQ работает точно также.
Мы будем использовать два класса Book и Order и используем Join над ними.
Здесь пример данных:
А здесь пример кода, применяющего Join над коллекциями книг и заказов.
В коде показанном вверху для сравнения используется оператор равенства.
Результат операции помещаем в анонимный тип, который включает BookID, BookName, OrderPaymentMode.
В этом посте, я покажу как вытащить максимальные значения в каждой группе используя LINQ.
Вначале рассмотрим класс Employees.
C#
Допустим вам нужно найти наибольшую зарплату сотрудника в каждом отделе. Дальше идет соответствующий LINQ запрос:
C#
Здесь небольшое пояснение. Сначала мы получаем максимальную зарплату используя
потом мы используем переменную topsal для сравнения ее с зарплатой текущего Employee в отделе и потом выбираем Empid
Вот и все что нужно, чтобы получить иды сотрудников с самой большой зарплатой в каждом департаменте.
Для печати результатов, просто используйте цикл и напечатайте значения - foreach(var a in highest){ }.