English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

LINQ API (.Net)

Мы можем писать LINQ-запросы для классов, реализующих интерфейсы IEnumerable<T> или IQueryable<T>.System.LinqПространство имен включает следующие классы и интерфейсы, необходимые для LINQ-запросов.

API LINQ
 При добавлении нового класса в Visual Studio по умолчанию включается пространство имен System.Linq.

LINQ-запросы используют расширяемые методы для классов, реализующих интерфейсы IEnumerable или IQueryable. Enumerable и Queryable - это два статических класса, которые содержат расширяемые методы для написания LINQ-запросов.

Классы, подлежащие итерации (Enumerable)

Класс Enumerable включает расширяемые методы для классов, реализующих интерфейс IEnumerable<T>, например, все内置енные классы集合 реализуют интерфейс IEnumerable<T>, поэтому мы можем писать LINQ-запросы для извлечения данных из встроенных集合.

Ниже показано, какие расширяемые методы включены в класс Enumerable, которые можно использовать с генерическими集合ами в C# или VB.Net.

На следующем рисунке показаны все доступные расширяемые методы в классе Enumerable.

Класс Enumerable

Искать (Queryable)

Класс Queryable содержит расширяемые методы для классов, реализующих член интерфейса IQueryable <t>. Интерфейс IQueryable<T> используется для предоставления функций запроса для известного типа данных данных, например, API Entity Framework реализует IQueryable<T> для поддерживаемых LINQ запросов через базу данных (например, MS SQL Server).

Кроме того, есть некоторые API, которые можно использовать для доступа к сторонним данным. Например, LINQ to Amazon предоставляет функцию для использования LINQ с Amazon Web Services для поиска книг и других предметов. Это можно сделать через реализацию интерфейса IQueryable для Amazon.

На следующем рисунке показаны расширяемые методы, доступные в классе Queryable, которые можно использовать с различными nativными или сторонними поставщиками данных.

На следующем рисунке показаны расширяемые методы, доступные в классе Queryable.

Класс Queryable

  Основные моменты, которые нужно запомнить

  1. Используйте пространство имен System.LINQ для использования LINQ.

  2. API LINQ включает два основных статических класса Enumerable и Queryable.

  3. Статическая класс Enumerable включает расширяемые методы для классов, реализующих интерфейс IEnumerable <T>.

  4. Тип集合 IEnumerable <T> является集合ом в памяти, например List, Dictionary, SortedList, Queue, HashSet, LinkedList.

  5. Статическая класс Queryable включает расширяемые методы для классов, реализующих интерфейс IQueryable <T>.

  6. Удаленный запрос предоставляет программы, такие как Linq-to-SQL, LINQ-to-Amazon и т.д.