=> Operator (C# Reference)

The => token is called the lambda operator. It is used in lambda expressions to separate the input variables on the left side from the lambda body on the right side. Lambda expressions are inline expressions similar to anonymous methods but more flexible; they are used extensively in LINQ queries that are expressed in method syntax. For more information, see Lambda Expressions (C# Programming Guide).

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


The => operator is read as "goes to." In the previous example, the expression is read as "Min w goes to w dot Length".

The => operator has the same precedence as the assignment operator (=) and is right-associative.

You can specify the type of the input variable explicitly or let the compiler infer it; in either case the variable is strongly typed at compile time. When you specify a type, you must enclose the type name and the variable name in parentheses, as shown in the following example:

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

Multiple input variables are enclosed in parentheses, as shown in the example later in this topic.


The following example shows how to write a lambda expression for the Standard Query Operator Enumerable.Where with two input variables. This expression returns all the strings whose lengths are less than their index positions in the array.

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)
// Output:
// five
// six
// seven
// eight
// nine

See Also


Lambda Expressions (C# Programming Guide)


C# Programming Guide

Other Resources

C# Reference