Gewusst wie: Verwenden von implizit typisierten lokalen Variablen und Arrays in einem Abfrageausdruck (C#-Programmierhandbuch)

Aktualisiert: November 2007

Sie müssen implizit typisierte lokale Variablen verwenden, um anonyme Typen zu speichern. Sie können sie auch in anderen Situationen verwenden, wenn der Compiler den Typ einer lokalen Variablen (d. h. einer am Methodenbereich deklarierten Variablen) bestimmen soll. In den folgenden Beispielen wird gezeigt, wie implizit typisierte Variablen in beiden Szenarios verwendet werden.

Implizit typisierte lokale Variablen werden mit dem var-Kontextschlüsselwort deklariert. Weitere Informationen hierzu finden Sie unter Implizit typisierte lokale Variablen (C#-Programmierhandbuch) und Implizit typisierte Arrays (C#-Programmierhandbuch).

Beispiel

Das folgende Beispiel zeigt, wie das var-Schlüsselwort in einem allgemeinen Szenario verwendet wird, in dem es benötigt wird, d. h. beim Erstellen und Ausführen eines Abfrageausdrucks, der eine Sequenz von anonymen Typen erzeugt. Beachten Sie, dass in diesem Szenario nicht nur die Abfragevariable, sondern auch die Iterationsvariable in der foreach-Anweisung mit var implizit typisiert werden muss.

private static void QueryNames(char firstLetter)
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var studentQuery =
        from student in students
        where student.FirstName[0] == firstLetter
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var student in studentQuery)
    {
        Console.WriteLine("First = {0}, Last = {1}", student.FirstName, student.LastName);
    }
}

Das später folgende Beispiel in diesem Thema zeigt, wie Sie das var-Schlüsselwort als syntaktisches Hilfsmittel verwenden können, selbst wenn es nicht benötigt wird. Um diese Konstruktion zu veranschaulichen, wird nur die Abfragevariable implizit typisiert. Die Iterationsvariable in der foreach-Anweisung ist explizit typisiert, kann jedoch auch mit var deklariert werden. Denken Sie daran, dass var kein eigener Typ ist, sondern vielmehr eine Anweisung an den Compiler, den Typ abzuleiten und zuzuweisen.

var queryID =
    from student in students
    where student.ID > 111
    select student.LastName;

foreach (string str in queryID)
{
    Console.WriteLine(str);
}

Siehe auch

Konzepte

C#-Programmierhandbuch

LINQ-Abfrageausdrücke (C#-Programmierhandbuch)

Referenz

Erweiterungsmethoden (C#-Programmierhandbuch)

var (C#-Referenz)

Weitere Ressourcen

Sprachintegrierte Abfrage (Language-Integrated Query, LINQ)