Лямбда
Лямбда записывается через =>: слева -
список параметров, справа - тело. Тип лямбды
задаёт контекст: часто это Func из
пространства System с нужными типами
аргументов и результата. Параметры можно
указывать с типами или выводить из делегата.
Синтаксис
(параметры) => выражение
(параметры) => { тело }
Пример
Давайте удвоим число через Func и лямбду:
using System;
class Program
{
static void Main()
{
Func<int, int> fn = num => num * 2;
Console.WriteLine(fn(5));
}
}
Результат выполнения кода:
10
Пример
Давайте укажем тип параметра явно:
using System;
class Program
{
static void Main()
{
Func<int, int> fn = (int num) => num + 3;
Console.WriteLine(fn(5));
}
}
Результат выполнения кода:
8
Пример
Давайте напишем лямбду с блоком и return:
using System;
class Program
{
static void Main()
{
Func<string, int> fn = str =>
{
return str.Length;
};
Console.WriteLine(fn("abcde"));
}
}
Результат выполнения кода:
5
Пример
Давайте вызовем лямбду из списка чисел:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var list = new List<int> {1, 2, 3};
list.ForEach(item =>
{
Console.WriteLine(item);
});
}
}
Результат выполнения кода:
1
2
3
Смотрите также
-
статическая лямбда,
которая не захватывает локальные переменные -
локальная функция,
которую объявляют внутри метода -
ключевое слово
var,
которым сокращают объявление делегата -
цикл
foreach,
в котором часто используют лямбды LINQ