Лямбда-выражения в 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-запросов.
- При передаче методов в качестве параметров.
- Для создания кратких анонимных методов, улучшая читаемость кода.
Лямбда-выражения позволяют писать более краткий и выразительный код, упрощая работу с делегатами и анонимными функциями.