Стандартные операторы запроса с LINQ - Операторы и LINQ

ОГЛАВЛЕНИЕ

Операторы и LINQ

LINQ — сам по себе очень мощное средство, независимо от того, какой применяется методо: «LINQ — XML», «LINQ — DataSets», «LINQ — сущности», «LINQ — объекты» или какой-то другой. Главное преимущество LINQ — строго типизированный синтаксис запросов, который может быть использован в любом их перечисленных методов. Если LINQ применяется в сочетании с одним или несколькими стандартными операторами запроса, формируется еще более функциональный набор средств, позволяющих четко контролировать набор данных.

Стнадартные операторы запросов располагаются в сборке System.Core.dll в пространстве имен System.Linq и представляют собой методы расширений статических классов Enumerable и Queryable. Применять их можно к объектам, реализующим интерфейсы IEnumerable<T> и IQueryable<T>. Это означает, что операторы применяются к самым различным классам, начиная с коллекций и массивов (последовательностей), размещенных в оперативной памяти, и заканчивая удаленными базами данных, использующими поставщики «LINQ — сущности» или «LINQ — SQL».

Определить, какой набор операторов можно использовать для выполнения той или иной задачи, несложно. Если оператор будет включен в запрос LINQ, то применять можно любые операторы из списка методов расширения статического класса Queryable. Если оператор будет применяться к последовательности, реализующей интерфейс IEnumerable<T>, использовать можно операторы из списка методов расширения класса Enumerable. Однако имейте в виду, что некоторые операторы, относящиеся к классу Queryable, можно применять только к определенным хранилищам данных, и поэтому во время выполнения они могут не поддерживаться.