Оператор => (Справочник по 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#