English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы можем писать LINQ-запросы для классов, реализующих интерфейсы IEnumerable<T> или IQueryable<T>.System.LinqПространство имен включает следующие классы и интерфейсы, необходимые для LINQ-запросов.
LINQ-запросы используют расширяемые методы для классов, реализующих интерфейсы IEnumerable или IQueryable. Enumerable и Queryable - это два статических класса, которые содержат расширяемые методы для написания LINQ-запросов.
Класс Enumerable включает расширяемые методы для классов, реализующих интерфейс IEnumerable<T>, например, все内置енные классы集合 реализуют интерфейс IEnumerable<T>, поэтому мы можем писать LINQ-запросы для извлечения данных из встроенных集合.
Ниже показано, какие расширяемые методы включены в класс Enumerable, которые можно использовать с генерическими集合ами в C# или VB.Net.
На следующем рисунке показаны все доступные расширяемые методы в классе Enumerable.
Класс Enumerable
Класс 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.
Используйте пространство имен System.LINQ для использования LINQ.
API LINQ включает два основных статических класса Enumerable и Queryable.
Статическая класс Enumerable включает расширяемые методы для классов, реализующих интерфейс IEnumerable <T>.
Тип集合 IEnumerable <T> является集合ом в памяти, например List, Dictionary, SortedList, Queue, HashSet, LinkedList.
Статическая класс Queryable включает расширяемые методы для классов, реализующих интерфейс IQueryable <T>.
Удаленный запрос предоставляет программы, такие как Linq-to-SQL, LINQ-to-Amazon и т.д.