Лямбда-выражения в C#

Лямбда-выражения в C# представляют собой упрощенный синтаксис для создания анонимных методов. Они используются в функциональном программировании, LINQ и обработке событий.

Синтаксис лямбда-выражений

Лямбда-выражение состоит из списка параметров, оператора => и тела выражения или блока кода.

(параметры) => выражение
(параметры) => { оператор; оператор; ... }

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

Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // 25

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

Лямбда-выражения в LINQ

Лямбда-выражения широко применяются в LINQ-запросах:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        var evenNumbers = numbers.Where(n => n % 2 == 0);
        
        foreach (var number in evenNumbers)
        {
            Console.WriteLine(number);
        }
    }
}

Вывод:

2
4

Лямбда-выражения как делегаты

Лямбда-выражение можно передавать в качестве аргумента в метод, принимающий делегат:

using System;

class Program
{
    static void Execute(Action action)
    {
        action();
    }

    static void Main()
    {
        Execute(() => Console.WriteLine("Выполняем действие"));
    }
}

Вывод:

Выполняем действие

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

Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4)); // 7

Лямбда-выражения с телом метода

Если тело выражения состоит из нескольких операторов, оно заключается в {}:

Func<int, int, int> multiply = (a, b) =>
{
    int result = a * b;
    Console.WriteLine($"Произведение: {result}");
    return result;
};
Console.WriteLine(multiply(3, 4));

Вывод:

Произведение: 12
12

Когда использовать лямбда-выражения

  • При использовании LINQ-запросов.
  • При передаче методов в качестве параметров.
  • Для создания кратких анонимных методов, улучшая читаемость кода.

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