Делегаты в LINQ

Когда знакомишься с какой-то новой для себя темой по примерам, то достаточно быстро привыкаешь использовать новые «фичи» на автомате, особенно не вникая в то, какие ещё могут быть варианты работы. Например, при работе с LINQ активно используются лямбда-выражения, потому что это удобный и лаконичный способ работы с анонимными методами. Вместе с этим, в LINQ используются делегаты, которые мы можем, при необходимости, использовать как обычные методы. Сегодня рассмотрим как использовать делегаты в LINQ и как понять «что от нас хотят разработчики LINQ», читая исходный код LINQ 

Читать далее

LINQ в C#: отложенное и немедленное выполнение запросов LINQ

Работу методов LINQ можно разделить на три этапа: 1. получение источника данных, 2. создание запроса, 3. выполнение запроса. В зависимости от того, какой метод используется мы можем получить результат как немедленно, так и в момент, когда данные запроса будут действительно нам необходимы, например, при попытке перебора элементов последовательности в цикле.

Читать далее

LINQ в C#: краткий справочник методов LINQ

В этой статье собраны все методы LINQ, которые рассматривались в блоге. По каждому методу дано его краткое описание, указан способ выполнения (отложенное или немедленное выполнение) и ссылка на статью блога в которой демонстрируется пример использования метода.

Читать далее

LINQ в C#: сравнение последовательностей

Иногда, при работе с несколькими коллекциями или последовательностями элементов может потребоваться определить сам факт равенства или неравенства всех элементов в одной коллекции всем элементам во второй коллекции. В этом случае нам нет необходимости выполнять операции Except или Intersect над коллекциями. Для сравнения последовательностей элементов в LINQ используется метод SequenceEqual.

Читать далее

LINQ в C#: преобразование типов данных

Методы преобразования изменяют тип входных объектов. Эти методы LINQ можно использовать, например, для того, чтобы скрыть реализацию коллекции или для того, чтобы запрос LINQ был выполнен немедленно.

Читать далее

LINQ в C#: объединение коллекций

Кроме фильтрации, выбора и группировки последовательностей в LINQ C# также предусмотрен ряд методов, позволяющих объединять как однородные, так и разнородные (содержащие элементы различных типов данных) коллекции.

Читать далее

LINQ в C#: операции над множествами

Множество (Set) на языке — это структура данных, представляющая собой не организованный набор уникальных элементов одного типа. Так, под общим названием «операции над множествами в LINQ» подразумеваются такие операции запросов, результирующие наборы которых основываются на наличии или отсутствии эквивалентных элементов в одной или другой коллекции (или наборе).

Читать далее

LINQ в C#: проверка элементов последовательности

При работе с различными коллекциями и списками элементов, часто бывает необходимо проверить соответствуют ли элементы этого набора данных определенным условиям. В LINQ для проверки элементов последовательностей применяются методы All, Any и Contains.

Читать далее

LINQ в C#: группировка элементов последовательности

При работе с последовательностями (списками) элементов бывает необходимым сгруппировать эти элементы по определенному признаку. Для этих целей в LINQ имеется метод расширения GroupBy.

Читать далее

LINQ в C#: выбор и пропуск элементов

Когда мы имеем дело с большим набором данных, бывает необходимым получать не сразу всю выборку элементов целиком, а получать их «постранично», например, последовательно по десять элементов. Для таких случаев в LINQ можно использовать такие методы расширения как Take и Skip.

Читать далее