Sdílet prostřednictvím


=> – operátor (Referenční dokumentace jazyka C#)

=> Token se nazývá operátor lambda.Používá se v lambda výrazy do samostatných vstupní proměnné na levé straně z těla lambda na pravé straně.Lambda výrazy jsou vložené výrazy, které jsou podobné anonymní metody, ale flexibilnější; Tyto jsou často používány v LINQ dotazy, které jsou vyjádřeny v syntaxi metody.Další informace naleznete v tématu Výrazy Lambda (Průvodce programováním v C#).

Následující příklad ukazuje dva způsoby, jak vyhledat a zobrazit délka nejkratší řetězec v poli řetězců.První část příkladu platí lambda výraz (w => w.Length) pro každý prvek words pole a potom používá Min``1 způsob hledání nejmenší délku.Pro srovnání druhá část příkladu ukazuje delší řešení, které používá syntaxi dotazu provést stejnou akci.

string[] words = { "cherry", "apple", "blueberry" };

// Use method syntax to apply a lambda expression to each element
// of the words array. 
int shortestWordLength = words.Min(w => w.Length);
Console.WriteLine(shortestWordLength);

// Compare the following code that uses query syntax.
// Get the lengths of each word in the words array.
var query = from w in words
            select w.Length;
// Apply the Min method to execute the query and get the shortest length.
int shortestWordLength2 = query.Min();
Console.WriteLine(shortestWordLength2);

// Output: 
// 5
// 5

Poznámky

=> Operátor má stejnou prioritu jako operátor přiřazení (=) a je asociativní zleva doprava.

Můžete explicitně zadat typ vstupní proměnné nebo nechat kompilátor odvodit v obou případech je silného typu proměnné v době kompilace.Zadáte-li typ, je nutné uzavřít název typu a názvu proměnné v závorkách, jak ukazuje následující příklad.

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

Příklad

Následující příklad ukazuje, jak napsat lambda výraz pro přetížení standardního dotazovacího operátoru Enumerable.Where``1 , která má dva argumenty.Protože lambda výraz obsahuje více než jeden parametr, parametry musí být uzavřeny v závorkách.Druhý parametr index, představuje index aktuální prvek v kolekci.Where Výraz vrátí všechny řetězce, jejichž délka je menší než jejich pozice indexu v poli.

static void Main(string[] args)
{
    string[] digits = { "zero", "one", "two", "three", "four", "five", 
            "six", "seven", "eight", "nine" };

    Console.WriteLine("Example that uses a lambda expression:");
    var shortDigits = digits.Where((digit, index) => digit.Length < index);
    foreach (var sD in shortDigits)
    {
        Console.WriteLine(sD);
    }

    // Compare the following code, which arrives at the same list of short
    // digits but takes more work to get there.
    Console.WriteLine("\nExample that uses a for loop:");
    List<string> shortDigits2 = new List<string>();
    for (var i = 0; i < digits.Length; i++)
    {
        if (digits[i].Length < i)
            shortDigits2.Add(digits[i]);
    }

    foreach (var d in shortDigits2)
    {
        Console.WriteLine(d);
    }
    // Output:
    // Example that uses a lambda expression:
    // five
    // six
    // seven
    // eight
    // nine

    // Example that uses a for loop:
    // five
    // six
    // seven
    // eight
    // nine
}

Viz také

Referenční dokumentace

Výrazy Lambda (Průvodce programováním v C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#