Partage via


Opérations de quantificateurs dans LINQ (C#)

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

Importante

Ces exemples utilisent une source de données System.Collections.Generic.IEnumerable<T>. Les sources de données basées sur System.Linq.IQueryProvider utilisent des sources de données System.Linq.IQueryable<T> et des arborescences d’expressions. Les arborescences d’expressions présentent des limitations sur la syntaxe C# autorisée. De plus, chaque source de données IQueryProvider, telle que EF Core peut imposer des restrictions supplémentaires. Consultez la documentation de votre source de données.

L’illustration suivante illustre deux opérations de quantificateur différentes sur deux séquences sources différentes. La première opération demande si l’un des éléments est le caractère « A ». La deuxième 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 Descriptif Syntaxe d'expression de requête C# Plus d’informations
Tous Détermine si tous les éléments d’une séquence répondent à une condition. Non applicable. Enumerable.All
Queryable.All
N'importe lequel Détermine si des éléments d’une séquence répondent à 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 l’exemple All pour rechercher les étudiants qui ont obtenu un score supérieur à 70 sur tous les examens.

Note

Vous pouvez faire référence aux sources de données courantes de cette zone dans l’article Vue d’ensemble des opérateurs de requête standard .

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

N'importe lequel

L’exemple suivant utilise l’exemple Any suivant 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 l’exemple Contains suivant pour rechercher les étudiants qui ont marqué exactement 95 sur 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