LINQ в C#
Примеры использования LINQ в C#
Замечание
Сортировка массива с использованием LINQ
Наиболее часто используемые методы расширения LINQ
Метод Where() позволяет отфильтровать набор данных по определенному критерию, а метод Select() позволяет нам определить
Сложные фильтры
OrderBy сортирует выборку по возрастанию, а OrderByDescending — по убыванию
Множественные критерии сортировки в LINQ (методы ThenBy и ThenByDescending)
LINQ в C#: объединение коллекций
Метод Concat объединяет две однородные коллекции
Метод Join Позволяет объединить две разнородные коллекции по определенному признаку (ключу)
Метод Zip Объединяет две коллекции последовательно в соответствии с их индексами, то есть первый элемент первой коллекции
LINQ в C#: группировка элементов последовательности
Метод GroupBy
Совместное использование GroupBy и Select
Метод ToLookup
LINQ в C#: проверка элементов последовательности
Метод Contains проверяет содержится ли заданный объект в коллекции
LINQ в C#: операции над множествами
Distinct — удаляет повторяющиеся значения из коллекции
Метод Except в LINQ возвращает множество, представляющее собой коллекцию, содержащую такие элементы, которые отсутствуют во
Метод Intersect в LINQ возвращает пересечение коллекций, т. е. элементы, присутствующие в каждой из двух коллекций
Метод Union в LINQ возвращает объединение множеств, т. е. уникальные элементы, присутствующие в одной из двух коллекций
Подсчёт суммы, определение среднего, минимального и максимального значения в LINQ
Еще методы
First
FirstOrDefault
Single
ElementAt
ElementAtOrDefault
Last и LastOrDefault
пример
Еще пример
1.69M
Category: programmingprogramming

LINQ в C#

1. LINQ в C#

Начиная с версии 3.5 в .NET Framework появился довольно
интересный и полезный метод доступа к данным —
LINQ. LINQ (Language Integrated Query) — это простой и
достаточно удобный язык запросов к источнику данных в C# и
других языках. Причем в качестве источника данных могут
выступать, как обычные массивы или списки, так и XMLдокументы, наборы данных DataSet

2. Примеры использования LINQ в C#

Выбор из массива строк с использованием LINQ

3. Замечание

В качестве источника данных для LINQ может
выступать любой объект, реализующий
интерфейс IEnumerable

4. Сортировка массива с использованием LINQ

Когда вы подключаете в проект пространство имен System.Linq, то
все объекты, реализующие интерфейс IEnumerable, автоматически
«обрастают» методами расширения LINQ.

5. Наиболее часто используемые методы расширения LINQ

6. Метод Where() позволяет отфильтровать набор данных по определенному критерию, а метод Select() позволяет нам определить

Метод Where() позволяет отфильтровать набор данных по
определенному критерию, а метод Select() позволяет нам
определить проекцию выбранных значений

7.

8.

С использованием метода расширения Select мы можем
сконструировать вообще другой тип данных, например,
добавим в итоговую выборку год рождения человека:

9. Сложные фильтры

10. OrderBy сортирует выборку по возрастанию, а OrderByDescending — по убыванию

OrderBy сортирует выборку по возрастанию,
а OrderByDescending — по убыванию

11.

12. Множественные критерии сортировки в LINQ (методы ThenBy и ThenByDescending)

13. LINQ в C#: объединение коллекций

• Метод Concat
• Метод Join
• Метод Zip

14. Метод Concat объединяет две однородные коллекции

Метод Concat объединяет две
однородные коллекции

15. Метод Join Позволяет объединить две разнородные коллекции по определенному признаку (ключу)

16.

17. Метод Zip Объединяет две коллекции последовательно в соответствии с их индексами, то есть первый элемент первой коллекции

соединяется с
первым элементов второй коллекции, второй элемент первой коллекции
— со вторым элементов второй коллекции и так далее.

18. LINQ в C#: группировка элементов последовательности

• Метод GroupBy
• Совместное использование GroupBy и Select
• Метод ToLookup

19. Метод GroupBy

Допустим, у нас имеется набор данных по
измерениям какой-то величины в различное
время суток. Нам необходимо сгруппировать
все элементы списка по времени суток.
• Метод GroupBy проводит группировку по
заданному с помощью параметра
критерию. В нашем случае — это была
группировка по полю Name:

20.

21. Совместное использование GroupBy и Select

22. Метод ToLookup

• также может использоваться для группировки элементов
последовательности по ключу, но при этом все элементы
добавляются в словарь

23. LINQ в C#: проверка элементов последовательности

• Метод All проверяет соответствуют ли все элементы
коллекции заданному условию и возвращает true/false в
зависимости от результата проверки
• метод Any проверяет соответствует ли хотя бы один
элемент заданному условию:

24. Метод Contains проверяет содержится ли заданный объект в коллекции

Метод Contains проверяет содержится
ли заданный объект в коллекции

25. LINQ в C#: операции над множествами

• Метод Distinct
• Метод Except
• Метод Intersect
• Метод Union

26. Distinct — удаляет повторяющиеся значения из коллекции

Distinct — удаляет повторяющиеся
значения из коллекции

27. Метод Except в LINQ возвращает множество, представляющее собой коллекцию, содержащую такие элементы, которые отсутствуют во

второй
коллекции

28. Метод Intersect в LINQ возвращает пересечение коллекций, т. е. элементы, присутствующие в каждой из двух коллекций

29. Метод Union в LINQ возвращает объединение множеств, т. е. уникальные элементы, присутствующие в одной из двух коллекций

Метод Union в LINQ возвращает объединение
множеств, т. е. уникальные элементы,
присутствующие в одной из двух коллекций

30. Подсчёт суммы, определение среднего, минимального и максимального значения в LINQ

31. Еще методы

• First — выбирает первый элемент коллекции
• FirstOrDefault — выбирает первый элемент коллекции или возвращает
значение по умолчанию
• Single — выбирает единственный элемент коллекции, если коллекция
содержит больше или меньше одного элемента, то генерируется
исключение
• SingleOrDefault — выбирает единственный элемент коллекции или
возвращает значение по умолчанию
• ElementAt — выбирает элемент последовательности по
определенному индексу
• ElementAtOrDefault — выбирает элемент коллекции по
определенному индексу или возвращает значение по умолчанию,
если индекс вне допустимого диапазона
• Last — выбирает последний элемент коллекции
• LastOrDefault — выбирает последний элемент коллекции или
возвращает значение по умолчанию

32. First

Метод возвращает первый элемент
последовательности, удовлетворяющий
условию. Если такой элемент не найден,
возникает исключение.

33. FirstOrDefault

метод работает аналогично First, но если
элемент не найден, возвращается значение
по умолчанию (default(T))

34. Single

Возвращает единственный элемент
последовательности, соответствующий
заданному условию. Если ни одного
элемента не найдено или найдено
несколько, выбрасывается исключение.

35. ElementAt

• Возвращает элемент по указанному
индексу. Если индекс выходит за пределы
диапазона, выбрасывается исключение.

36. ElementAtOrDefault

• Возвращает элемент по указанному
индексу. Если индекс выходит за пределы
диапазона, возвращается значение по
умолчанию (default(T))

37. Last и LastOrDefault

38. пример

Представьте себе, что у вас есть список
сотрудников компании с информацией о
зарплате, должности и департаменте. Вам нужно
сгруппировать сотрудников по департаментам,
отсортировать департаменты по количеству
сотрудников, внутри каждой группы
отсортировать сотрудников по зарплате и
применить фильтрацию по сотрудникам с
зарплатой выше определенного уровня.

39.

40. Еще пример

• Имеется 2 списка товаров со следующими
свойствами: Категория, Наименование, Цена,
Количество. Необходимо объединить эти товары в
один список, чтобы повторяющиеся товары были
заменены одним, а их количество стало их суммой.
после этого группировать товары по категориям
English     Русский Rules