Opérations de quantificateur dans LINQ (C#)

Les opérations de quantificateur retournent une valeur Boolean qui indique si certains ou tous les éléments d’une séquence remplissent une condition.

L’illustration suivante représente deux opérations de quantificateur différentes sur deux séquences sources différentes. La première opération demande s’il y a des éléments qui sont le caractère « A ». La seconde opération demande si tous les éléments sont le caractère « A ». Les deux méthodes retournent true dans cet exemple.

Opérations de quantificateur LINQ

Nom de la méthode Description Syntaxe d'expression de requête C# Informations complémentaires
Tous Détermine si tous les éléments d’une séquence remplissent une condition. Non applicable. Enumerable.All
Queryable.All
Quelconque Détermine si certains éléments d’une séquence remplissent une condition. Non applicable. Enumerable.Any
Queryable.Any
Contient Détermine si une séquence contient un élément spécifié. Non applicable. Enumerable.Contains
Queryable.Contains

Tous

L’exemple suivant utilise le All pour rechercher les étudiants qui ont obtenu un score supérieur à 70 sur tous les examens.

IEnumerable<string> names = from student in students
                            where student.Scores.All(score => score > 70)
                            select $"{student.FirstName} {student.LastName}: {string.Join(", ", student.Scores.Select(s => s.ToString()))}";

foreach (string name in names)
{
    Console.WriteLine($"{name}");
}

// This code produces the following output:
//
// Cesar Garcia: 71, 86, 77, 97
// Nancy Engström: 75, 73, 78, 83
// Ifunanya Ugomma: 84, 82, 96, 80

Tout

L’exemple suivant utilise le Any pour rechercher les étudiants ayant obtenu un score supérieur à 95 sur n’importe quel examen.

IEnumerable<string> names = from student in students
                            where student.Scores.Any(score => score > 95)
                            select $"{student.FirstName} {student.LastName}: {student.Scores.Max()}";

foreach (string name in names)
{
    Console.WriteLine($"{name}");
}

// This code produces the following output:
//
// Svetlana Omelchenko: 97
// Cesar Garcia: 97
// Debra Garcia: 96
// Ifeanacho Jamuike: 98
// Ifunanya Ugomma: 96
// Michelle Caruana: 97
// Nwanneka Ifeoma: 98
// Martina Mattsson: 96
// Anastasiya Sazonova: 96
// Jesper Jakobsson: 98
// Max Lindgren: 96

contient

L’exemple suivant utilise le Contains pour rechercher les étudiants qui ont obtenu un score exact de 95 à un examen.

IEnumerable<string> names = from student in students
                            where student.Scores.Contains(95)
                            select $"{student.FirstName} {student.LastName}: {string.Join(", ", student.Scores.Select(s => s.ToString()))}";

foreach (string name in names)
{
    Console.WriteLine($"{name}");
}

// This code produces the following output:
//
// Claire O'Donnell: 56, 78, 95, 95
// Donald Urquhart: 92, 90, 95, 57

Voir aussi