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#)
Conceitos
LINQ Expressões de consulta (guia de programação de C#)