How to: Use implicitamente digitado variáveis locais e Arrays em uma expressão de consulta (C# guia de programação)

Você deve usar variáveis de locais digitadas implicitamente para armazenar tipos anônimos. Você também pode usá-los em qualquer outra situação em que você deseja que o compilador para determinar o tipo de uma variável local (em outras palavras, uma variável declarada no escopo do método). Os exemplos a seguir mostram como usar variáveis digitadas implicitamente em ambos os cenários.

Variáveis de locais digitadas implicitamente são declaradas usando a var palavra-chave contextual. Para obter mais informações, consulte Implicitamente digitado variáveis locais (C# guia de programação) e Arrays digitados implicitamente (C# guia de programação).

Exemplo

O exemplo a seguir mostra como usar o var palavra-chave em um cenário comum onde é necessária: Quando você está criando e executando uma expressão de consulta que produz uma seqüência de tipos anônimos. Observe que, nesse cenário, não apenas a variável de consulta, mas também a variável de iteração no foreach instrução deve ser digitada implicitamente, usando 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);
    }
}

O exemplo mais adiante neste tópico mostra como usar o var palavra-chave como uma conveniência sintática, mesmo quando não é necessária. Para ilustrar essa construção, a variável de consulta implicitamente é digitada. A variável de iteração no foreach instrução explícito, mas também pode ser declarada usando var. Lembre-se, var propriamente dito é não um tipo, mas em vez disso, uma instrução para o compilador para inferir e atribuir o tipo.

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

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

Consulte também

Referência

Métodos de extensão (guia de programação de C#)

var (referência de C#)

Conceitos

C# Programming Guide

LINQ Expressões de consulta (guia de programação de C#)

Outros recursos

LINQ (consulta integrada à linguagem)