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

Guide de programmation C#

Expressions de requête LINQ (Guide de programmation C#)

Référence

Méthodes d'extension (Guide de programmation C#)

var (Référence C#)

Autres ressources

LINQ (Language-Integrated Query)