War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Operator => (C#-Referenz)

Das =>-Token wird als Operator Lambda bezeichnet. Es wird in Lambda-Ausdrücken verwendet, um die Eingabevariablen auf der linken Seite von dem Lambda-Text auf der rechten Seite zu trennen. Bei Lambda-Ausdrücken handelt es sich um Inlineausdrücke, die anonymen Methoden ähneln, jedoch flexibler sind. Sie werden häufig in LINQ-Abfragen in Methodensyntax verwendet. Weitere Informationen finden Sie unter Lambda-Ausdrücke (C#-Programmierhandbuch).

Im folgenden Beispiel werden zwei Möglichkeiten veranschaulicht, die Länge der kürzesten Zeichenfolge in einem Zeichenfolgenarray zu suchen und anzuzeigen. Der erste Teil des Beispiels wird ein Lambda-Ausdruck (w => w.Length) auf jedes Element des Arrays words und verwendet dann die Min``1-Methode, um die kleinste Länge zu suchen. Für Vergleich zeigt der zweite Teil des Beispiels eine längere Lösung an, die Abfragesyntax verwendet, um die gleichen Schritt auszuführen.

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

Der Operator => verfügt über die gleiche Rangfolge wie der Zuweisungsoperator (=) und ist rechtsassoziativ.

Sie können den Typ der Eingabevariable explizit angeben oder vom Compiler ableiten lassen; in jedem Fall ist die Variable zur Kompilierzeit stark typisiert. Wenn Sie einen Typ angeben, müssen Sie den Typnamen und den Variablennamen in Klammern, wie im folgenden Beispiel gezeigt, einschließen.

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

Im folgenden Beispiel wird gezeigt, wie ein Lambda-Ausdruck für die Überladung des Standardabfrageoperators Enumerable.Where``1 geschrieben wird, der zwei Argumente akzeptiert. Da der Lambda-Ausdruck über mehr als einen Parameter verfügt, müssen die Parameter in Klammern stehen. Der zweite Parameter, index, stellt den Index des aktuellen Elements in der Auflistung dar. Der Where Ausdruck gibt alle Zeichenfolgen, deren Länge kleiner als ihre Indexposition im Array sind, zurück.

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
}

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft