Практическое руководство. Использование явно введенных локальных переменных и массивов в выражении запроса (Руководство по программированию в 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#)

var (справочник по C#)

Другие ресурсы

LINQ