Jak: Użyj niejawnie wpisane zmiennych lokalnych i tablic w wyrażeniu kwerendy (Podręcznik programowania C#)
Można użyć niejawnie maszynowy zmiennych lokalnych, w każdym przypadku, gdy chcesz kompilatora, aby określić typ zmiennej lokalnej.Zmienne lokalne niejawnie maszynowy musi służy do przechowywania typy anonimowe, które są często używane w wyrażeniach kwerend.Poniższe przykłady ilustrują zarówno opcjonalne wymagane zastosowań niejawnie maszynowy zmiennych lokalnych w kwerendach.
Niejawnie maszynowy zmienne lokalne są deklarowane przy użyciu var. kontekstowe słowa kluczowego.Aby uzyskać więcej informacji, zobacz Wpisane niejawnie zmiennych lokalnych (C# Programming Guide) i Tablice niejawnie maszynowy (C# Programming Guide).
Przykład
Poniższy przykład przedstawia typowych scenariuszy, w którym var słowo kluczowe jest wymagane: wyrażenie kwerendy, która wytwarza sekwencja typy anonimowe.W tym scenariuszu, zarówno zmienna kwerendy, jak i Zmienna iteracji w foreach oświadczenie musi być wpisana niejawnie za pomocą var , ponieważ nie masz dostępu do nazwy typu dla typu anonimowe.Aby uzyskać więcej informacji o typach anonimowego, zobacz Typy anonimowe (Podręcznik programowania C#).
private static void QueryNames(char firstLetter)
{
// Create the query. Use of var is required because
// the query produces a sequence of anonymous types:
// System.Collections.Generic.IEnumerable<????>.
var studentQuery =
from student in students
where student.FirstName[0] == firstLetter
select new { student.FirstName, student.LastName };
// Execute the query and display the results.
foreach (var anonType in studentQuery)
{
Console.WriteLine("First = {0}, Last = {1}", anonType.FirstName, anonType.LastName);
}
}
W poniższym przykładzie użyto var słowa kluczowego w podobnej sytuacji, ale w którym stosowanie var jest opcjonalny.Ponieważ student.LastName jest ciągiem, wykonanie zwraca kwerendy Sekwencja ciągów.W związku z tym, typ queryID może być zadeklarowany jako System.Collections.Generic.IEnumerable<string> zamiast var.Słowo kluczowe var jest używana dla wygody.W przykładzie zmienna iteracji w foreach instrukcji jest jawnie wpisana jako ciąg znaków, ale zamiast niego może być deklarowane przy użyciu var.Ponieważ nie jest typu Zmienna iteracji typ anonimowy, wykorzystanie var jest to opcja, nie wymaganiem.Należy pamiętać, że var sam nie jest typu, ale instrukcji w kompilatorze, aby rozpoznać i przypisywane jako zamówienie typu.
// Variable queryID could be declared by using
// System.Collections.Generic.IEnumerable<string>
// instead of var.
var queryID =
from student in students
where student.ID > 111
select student.LastName;
// Variable str could be declared by using var instead of string.
foreach (string str in queryID)
{
Console.WriteLine("Last name: {0}", str);
}
Zobacz też
Informacje
Rozszerzenie metody (Podręcznik programowania C#)
Koncepcje
Wyrażenia w kwerendzie LINQ (Podręcznik programowania C#)