Практическое руководство. Использование явно введенных локальных переменных и массивов в выражении запроса (Руководство по программированию в C#)
Обновлен: Ноябрь 2007
Явно введенные локальные переменные следует использовать для хранения анонимных типов. Кроме того, их можно также использовать в любой другой ситуации, когда требуется, чтобы компилятор определял тип локальной переменной (другими словами, переменной, объявленной в области метода). В следующих примерах показано, как использовать явно введенные локальные переменные в обоих сценариях.
Для объявления явно введенных локальных переменных используется контекстно-зависимое ключевое слово var. Дополнительные сведения см. в разделах Неявно типизированные локальные переменные (Руководство по программированию в C#) и Неявно типизированные массивы (руководство по программированию на C#).
Пример
В следующем примере показано, как использовать ключевое слово var в нужном месте в типовом сценарии – при создании и выполнении выражения запроса, создающего последовательность анонимных типов. Обратите внимание, что в данном сценарии требуется явный ввод не только переменной запроса, но и переменной итерации в операторе foreach при помощи var.
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);
}
}
В примере в конце этого раздела показано использование ключевого слова var для синтаксического удобства, даже если оно не требуется. Для иллюстрации этой конструкции явно введена только переменная запроса. Переменная итерации в операторе foreach явно введена, но может быть также объявлена при помощи ключевого слова var. Помните, само ключевое слово var является не типом, а инструкцией компилятору определять и назначать тип.
var queryID =
from student in students
where student.ID > 111
select student.LastName;
foreach (string str in queryID)
{
Console.WriteLine(str);
}
См. также
Основные понятия
Руководство по программированию в C#
Выражения запросов LINQ (Руководство по программированию в C#)
Ссылки
Методы расширения (руководство по программированию в C#)