=> — Operator (odwołanie w C#)

=> Token nosi nazwę operatora lambda.Jest ono używane w wyrażenia lambda do oddzielenia zmienne wejściowe po lewej stronie od korpusu lambda po prawej stronie.Lambda wyrażenia są wyrażeniami inline podobny do anonimowego metody, ale bardziej elastyczne. oni są szeroko stosowane w kwerendach LINQ, które są wyrażone w składni metody.Aby uzyskać więcej informacji, zobacz Wyrażenia lambda (Przewodnik programowania w języku C#).

W poniższym przykładzie przedstawiono dwa sposoby, aby znaleźć i wyświetlić długość ciągu najkrótszy w tablicę ciągów.Wyrażenie lambda stosuje się pierwsza część przykładu (w => w.Length) do każdego elementu words tablicy, a następnie używa Min``1 metodę, aby znaleźć najmniejszą długością.Dla porównania druga część przykładzie pokazuje dłużej rozwiązanie, które używa składni kwerendy, aby zrobić to samo.

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

Uwagi

=> Operator ma ten sam priorytet, jako operator przypisania (=) i są zespolone po prawej stronie.

Można jawnie określić typ zmienną wejściową lub pozwolić, kompilator wywnioskować w obu przypadkach zmienna ma jednoznacznie określony w czasie kompilacji.Po określeniu typu, należy ująć w nawiasy, wpisz nazwę oraz nazwę zmiennej jak w poniższym przykładzie.

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

Przykład

Poniższy przykład pokazuje, jak napisać wyrażenie lambda przeciążania operatora standardowej kwerendy Enumerable.Where``1 który ma dwa argumenty.Ponieważ wyrażenie lambda zawiera więcej niż jeden parametr, parametry muszą być ujęte w nawiasy.Drugi parametr, index, reprezentuje indeks bieżącego elementu w kolekcji.Where Wyrażenie zwraca wszystkie ciągi kogo długości jest mniejsza od ich pozycji indeksu w tablicy.

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
}

Zobacz też

Informacje

Wyrażenia lambda (Przewodnik programowania w języku C#)

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Odwołanie w C#