Учимся использовать лямбда-выражение в своих приложениях C#

Лямбда-выражения были введены в C # 3 (.NET 3.5). Эти выражения используются сегодня повсеместно в коде, чтобы сделать запросы LINQ,чтобы сделать фильтры на списках, для делегатов и событий.

Поэтому очень важно понять, как работает этот тип выражения.

Лямбда-выражение-это анонимная функция, которая может содержать выражения и инструкции. Это можно использовать для создания делегатов или типов дерева выражений.

Во всех выражениях используется оператор lambda => (читает “приводит к”).
Выражение всегда состоит из двух частей:

левая сторона дает входные параметры (если таковые имеются),
сторона должна дать инструкции анонимного метода.
Лямбда-выражения используются двумя способами:

чтобы создать лямбда-выражение: это выражение, которое используется для создания деревьев выражений (в основном используется для выполнения инструкций динамически, идеально подходит для создания фильтров данных с Linq, например),
чтобы создать инструкции lambda: это эквивалент делегата в C # с другим синтаксисом.

Вот пример лямбда-выражения:

Вот пример лямбда-утверждения

Используйте лямбда-выражения каждый день

Платформа .NET framework предлагает множество методов, использующих лямбда-выражения через Тип Func.
Делегаты Func-это параметризованные делегаты, задающие тип ввода (T) и тип вывода (TResult).
Эти делегаты очень полезны для инкапсуляции определяемых пользователем выражений для применения к источнику данных.

Этот делегат определяется следующим образом:

Повторяя предыдущий пример, что из расчета квадрата, можно написать этот кусок кода вместо этого:

 

Ладно, это пример простой. Но давайте пойдем дальше. Платформа предлагает множество методов расширения с момента появления Linq.
Наиболее используемым, несомненно, является Count, который позволяет вернуть количество элементов коллекции.
Этот метод поддерживает несколько перегрузок, одна из которых предлагает параметр типа Func, что позволяет задать выражение фильтрации.
Благодаря этому механизму, в частности, можно рассчитывать на определенные элементы.

Вот такой пример :

 

Вот еще один пример использования метода Average:

Применение последовательных фильтров

Например, рассмотрим список элементов, которые мы хотим отфильтровать (например, список пользователей).
Лямбда-выражения позволяют применять к коллекциям несколько фильтров.

Вывод

Лямбда-выражения теперь широко используются в .NET framework. Без него практически невозможно обойтись (многие компоненты их используют).
Я предлагаю вам попробовать и использовать эти механизмы.

Чтобы пойти дальше, вы также можете узнать о деревьях выражений, которые могут быть использованы для создания скомпилированных методов на лету для вычисления выражений: см. веб-сайт Корпорации Майкрософт.

Обновлено: 04.01.2020 — 21:23

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.