Comment : utiliser des tableaux et des variables locales implicitement typés dans une expression de requête (Guide de programmation C#)
Mise à jour : novembre 2007
Vous devez utiliser des variables locales implicitement typées pour stocker des types anonymes. Vous pouvez également les utiliser dans toute autre situation dans laquelle vous souhaitez que le compilateur détermine le type d'une variable locale (en d'autres termes, une variable déclarée à la portée de la méthode). Les exemples suivants indiquent comment utiliser des variables implicitement typées dans les deux scénarios.
Les variables locales implicitement typées sont déclarées en utilisant le mot clé contextuel var. Pour plus d'informations, consultez Variables locales implicitement typées (Guide de programmation C#) et Tableaux implicitement typés (Guide de programmation C#).
Exemple
L'exemple suivant indique comment utiliser le mot clé var dans un scénario courant où il est requis : lorsque vous créez et exécutez une expression de requête qui produit une séquence de types anonymes. Notez que dans ce scénario, la variable de requête ainsi que la variable d'itération dans l'instruction foreach doivent être implicitement typées en utilisant 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);
}
}
L'exemple décrit plus loin dans cette rubrique explique l'utilisation du mot clé var pour plus de commodité en termes de syntaxe, même lorsqu'il n'est pas requis. Pour illustrer cette construction, seule la variable de requête est implicitement typée. La variable d'itération dans l'instruction foreach est explicitement typée, mais elle peut également être déclarée en utilisant var. N'oubliez pas que var lui-même n'est pas un type, mais plutôt une instruction demandant au compilateur de déduire et d'assigner le type.
var queryID =
from student in students
where student.ID > 111
select student.LastName;
foreach (string str in queryID)
{
Console.WriteLine(str);
}
Voir aussi
Concepts
Expressions de requête LINQ (Guide de programmation C#)
Référence
Méthodes d'extension (Guide de programmation C#)