Слайд 2LINQ. Определение.
LINQ (Language-Integrated Query) представляет простой и удобный язык запросов к источнику данных.
В качестве источника данных может выступать объект, реализующий интерфейс IEnumerable (например, стандартные коллекции, массивы), набор данных DataSet, документ XML. Но вне зависимости от типа источника LINQ позволяет применить ко всем один и тот же подход для выборки данных.
Пространство имен – System.Linq;
Слайд 3LINQ. Разновидности.
LINQ to Objects: применяется для работы с массивами и коллекциями
LINQ to
Entities: используется при обращении к базам данных через технологию Entity Framework
LINQ to Sql: технология доступа к данным в MS SQL Server
LINQ to XML: применяется при работе с файлами XML
LINQ to DataSet: применяется при работе с объектом DataSet
Parallel LINQ (PLINQ): используется для выполнения параллельных запросов
Слайд 6Пример с LINQ (запись в одну строку)
Слайд 7LINQ-запрос. Простейшее определение.
from переменная in набор_объектов select переменная;
Выражение from t in names
проходит по всем элементам массива names и определяет каждый элемент как t. Используя переменную t мы можем проводить над ней разные операции.
Далее с помощью оператора where проводится фильтрация объектов, и если объект соответствует критерию (в данном случае начальная буква должна быть "A"), то этот объект передается дальше.
Оператор orderby упорядочивает по возрастанию, то есть сортирует выбранные объекты.
Оператор select передает выбранные значения в результирующую выборку, которая возвращается LINQ-выражением.
Слайд 8LINQ. Методы расширения.
Кроме стандартного синтаксиса from .. in .. select для создания
запроса LINQ мы можем применять специальные методы расширения, которые определены в интерфейсе IEnumerable. Как правило, эти методы реализуют ту же функциональность, что и операторы LINQ типа where или orderby.
Слайд 9LINQ. Методы расширения. Пример.
Слайд 10LINQ. Сочетание подходов.
используем стандартный синтаксис LINQ и метод расширения Count(), возвращающий количество
элементов в выборке:
Слайд 11LINQ. Используемые методы расширения
Select: определяет проекцию выбранных значений
Where: определяет фильтр выборки
OrderBy: упорядочивает
элементы по возрастанию
OrderByDescending: упорядочивает элементы по убыванию
Join: соединяет две коллекции по определенному признаку
GroupBy: группирует элементы по ключу
Reverse: располагает элементы в обратном порядке
Contains: определяет, содержит ли коллекция определенный элемент
Distinct: удаляет дублирующиеся элементы из коллекции
Count: подсчитывает количество элементов коллекции, которые удовлетворяют определенному условию
Concat: объединяет две коллекции
First: выбирает первый элемент коллекции
ElementAt: выбирает элемент последовательности по определенному индексу
Last: выбирает последний элемент коллекции
И многие другие методы
Слайд 12LINQ. Методы расширения. Пример со словарём.
Слайд 13LINQ. Методы расширения. Пример с XML.