Оператор => (Справочник по C#)
Обновлен: Ноябрь 2007
Маркер => называется лямбда-оператором. Он используется в лямбда-выражениях для отделения входных переменных с левой стороны от тела лямбда-выражения с правой стороны. Лямбда-выражения — это встроенные выражения, аналогичные анонимным методам, но более гибкие. Они широко используются в запросах LINQ, выраженных с использованием синтаксиса методов. Дополнительные сведения см. в разделе Лямбда-выражения (Руководство по программированию в C#).
string[] words = { "cherry", "apple", "blueberry" };
int shortestWord = words.Min(w => w.Length);
Заметки
Оператор => читается как "переходит". Выражение из предыдущего примера читается как "Min. w переходит в w точка Length".
Оператор => имеет тот же приоритет, что и оператор присваивания (=) и является правоассоциативным.
Можно явно задать тип входной переменной или дать возможность компьютеру задать его. В любом случае, тип переменной строго определен во время компиляции. При определении типа необходимо указать имя типа и имя переменной в скобках, как показано в приведенном ниже примере:
int shortestWord = 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);
См. также
Основные понятия
Руководство по программированию в C#
Ссылки
Лямбда-выражения (Руководство по программированию в C#)