Лямбда-выражение (Lambda Expression) в C# — это краткий способ записи анонимной функции, которая может быть передана как аргумент, сохранена в переменной или использована в LINQ-запросах. Оно позволяет писать компактный код без явного объявления отдельного метода.
Expression<T>
).(входные_параметры) => тело_выражения
Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // Выведет 25
Action<string> greet = name =>
{
string greeting = $"Привет, {name}!";
Console.WriteLine(greeting);
};
greet("Анна"); // Выведет "Привет, Анна!"
var numbers = new List<int> { 1, 2, 3, 4 };
var evenNumbers = numbers.Where(n => n % 2 == 0); // Фильтрация чётных чисел
Лямбды могут "запоминать" переменные из внешнего контекста:
int multiplier = 3;
Func<int, int> multiply = x => x * multiplier;
Console.WriteLine(multiply(4)); // Выведет 12
delegate int Operation(int a, int b);
Operation add = (a, b) => a + b; // Лямбда присвоена делегату
✔ Плюсы:
✖ Минусы:
Where
, Select
, OrderBy
).Task.Run(() => { ... })
).button.Click += (s, e) => MessageBox.Show("Clicked!")
).лямбда-выражения — это мощный инструмент для написания лаконичного и выразительного кода, особенно полезный при работе с делегатами, LINQ и асинхронными операциями.