14 июня 2014 г.

Использование синтаскиса запросов или синтаксиса методов в LINQ

Благодаря методам расширения интерфейсы IEnumerable, IEnumerable<T> и Queryable, IQueryable<T> обзавелись новыми методами (если конечно используется директива using System.Linq). Известно что запросы LINQ можно писать различными способами, об этом и поговорим.
Сразу перейдем к примеру.
У нас есть массив строк:


Мы хотим выбрать все слова, в которых встречается буква "а":

И синтаксис запросов и синтаксис методов здесь читается на мой взгляд одинаково легко.

Теперь хотим сгруппировать все слова по длине, перевести их в верхний регистр и упорядочить по возрастанию, а результат поместить в анонимный тип:

Здесь синтаксис методов выглядит более громоздко и читается хуже.

Т.е. для более сложных запросов (с группировкой и / или упорядочиванием) синтаксис запросов может выглядеть более компактно и ясно.
В случае если хочется использовать синтаксис запросов, но не хватает выражения для какого-то метода (полная таблица соответствия на сайте MSDN), можно использовать смешанный синтаксис:

Комментариев нет:

Отправить комментарий