Similar presentations:
LINQ в C#
1. LINQ в C#
Начиная с версии 3.5 в .NET Framework появился довольноинтересный и полезный метод доступа к данным —
LINQ. LINQ (Language Integrated Query) — это простой и
достаточно удобный язык запросов к источнику данных в C# и
других языках. Причем в качестве источника данных могут
выступать, как обычные массивы или списки, так и XMLдокументы, наборы данных DataSet
2. Примеры использования LINQ в C#
Выбор из массива строк с использованием LINQ3. Замечание
В качестве источника данных для 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 списка товаров со следующимисвойствами: Категория, Наименование, Цена,
Количество. Необходимо объединить эти товары в
один список, чтобы повторяющиеся товары были
заменены одним, а их количество стало их суммой.
после этого группировать товары по категориям
programming