Оператор => (Справочник по C#)

Маркер => называется лямбда-оператором. Он используется в лямбда-выражениях для отделения входных переменных с левой стороны от тела лямбда-выражения с правой стороны. Лямбда-выражения — это встроенные выражения, аналогичные анонимным методам, но более гибкие. Они широко используются в запросах LINQ, выраженных с использованием синтаксиса методов. Дополнительные сведения см. в разделе Лямбда-выражения (Руководство по программированию в C#).

string[] words = { "cherry", "apple", "blueberry" };
int shortestWordLength = words.Min(w => w.Length);
Console.WriteLine(shortestWordLength);
// Output: 5

Заметки

Оператор => читается как "переходит". Выражение из предыдущего примера читается как "Min. w переходит в w точка Length".

Оператор => имеет тот же приоритет, что и оператор присваивания (=) и является правоассоциативным.

Можно явно задать тип входной переменной или дать возможность компьютеру задать его. В любом случае, тип переменной строго определен во время компиляции. При определении типа необходимо указать имя типа и имя переменной в скобках, как показано в приведенном ниже примере:

int shortestWordLength = words.Min((string w) => w.Length);

При определении нескольких входных переменных они заключаются в скобки (см. приведенный ниже пример).

Пример

В следующем примере показано лямбда-выражение с двумя входными переменными для стандартного оператора запроса Enumerable.Where. Это выражение возвращает все строки, длина которых меньше их позиции индекса в массиве.

string[] digits = { "zero", "one", "two", "three", "four", "five", 
                    "six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index);
foreach (var sD in shortDigits)
{
    Console.WriteLine(sD);
}
// Output:
// five
// six
// seven
// eight
// nine

См. также

Ссылки

Лямбда-выражения (Руководство по программированию в C#)

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#