C# Language Les bases


Exemple

LINQ est largement bénéfique pour interroger des collections (ou des tableaux).

Par exemple, compte tenu des exemples de données suivants:

var classroom = new Classroom
{
    new Student { Name = "Alice", Grade = 97, HasSnack = true  },
    new Student { Name = "Bob",   Grade = 82, HasSnack = false },
    new Student { Name = "Jimmy", Grade = 71, HasSnack = true  },
    new Student { Name = "Greg",  Grade = 90, HasSnack = false },
    new Student { Name = "Joe",   Grade = 59, HasSnack = false }
}

Nous pouvons "interroger" ces données en utilisant la syntaxe LINQ. Par exemple, pour récupérer tous les élèves qui ont une collation aujourd'hui:

var studentsWithSnacks = from s in classroom.Students
                         where s.HasSnack
                         select s;

Ou, pour récupérer les élèves ayant une note de 90 ou plus et ne renvoyer que leurs noms, pas l'objet complet de l' Student :

var topStudentNames = from s in classroom.Students
                      where s.Grade >= 90
                      select s.Name;

La fonctionnalité LINQ est composée de deux syntaxes qui remplissent les mêmes fonctions, ont des performances presque identiques, mais sont écrites de manière très différente. La syntaxe dans l'exemple ci-dessus est appelée syntaxe de requête . L'exemple suivant illustre toutefois la syntaxe de la méthode . Les mêmes données seront renvoyées comme dans l'exemple ci-dessus, mais la façon dont la requête est écrite est différente.

var topStudentNames = classroom.Students
                               .Where(s => s.Grade >= 90)
                               .Select(s => s.Name);