Что делает такие методы, как Select, Join, где стандартные операторы запросов Linq-to-Object, а не ...? - PullRequest
0 голосов
/ 07 сентября 2011

1) Внутренне, что делает методы такими Select, Join, Where и т. Д. (Кроме того факта, что выражения запроса переводятся компилятором в вызовы этих методов) Linq-to-Object's стандартные операторы запросов , а не просто обычные методы, которые работают с последовательностями данных?

А именно, все функции, предлагаемые этими операторами, также могут быть реализованы в обычных методах, но мы не называем эти обычные методы стандартные операторы запросов ?!

2) Тот же вопрос для методов Linq-to-XML - таким образом, что делает их операторами запроса , а не просто обычными методами, работающими с данными XML?

Спасибо

1 Ответ

1 голос
/ 07 сентября 2011

Ну, они являются"обычными (ну, расширением) методами", но они также определены на странице LINQ Стандартные операторы запросов на MSDN:

Стандартные операторы запросов - это методы, которые формируют шаблон Language-Integrated Query (LINQ).Большинство этих методов работают с последовательностями, где последовательность - это объект, тип которого реализует интерфейс IEnumerable или интерфейс IQueryable.Стандартные операторы запросов предоставляют возможности запросов, включая фильтрацию, проекцию, агрегирование, сортировку и т. Д.

Один интересный вопрос заключается в том, должен ли Zip считаться стандартным оператором запроса, учитываячто это было введено в .NET 4 ...

...