Share via


Kwantificatorbewerkingen in LINQ (C#)

Kwantificatorbewerkingen retourneren een Boolean waarde die aangeeft of sommige of alle elementen in een reeks aan een voorwaarde voldoen.

Belangrijk

In deze voorbeelden wordt een System.Collections.Generic.IEnumerable<T> gegevensbron gebruikt. Gegevensbronnen op System.Linq.IQueryProvider basis van het gebruik van System.Linq.IQueryable<T> gegevensbronnen en expressiestructuren. Expressiestructuren hebben beperkingen voor de toegestane C#-syntaxis. Bovendien kan elke IQueryProvider gegevensbron, zoals EF Core , meer beperkingen opleggen. Raadpleeg de documentatie voor uw gegevensbron.

In de volgende afbeelding ziet u twee verschillende kwantifierbewerkingen op twee verschillende bronreeksen. De eerste bewerking vraagt of een van de elementen het teken A is. Met de tweede bewerking wordt gevraagd of alle elementen het teken A zijn. Beide methoden retourneren true in dit voorbeeld.

LINQ Kwantifier-bewerkingen

Methodenaam Beschrijving Syntaxis van C#-queryexpressie Meer informatie
Alle Bepaalt of alle elementen in een reeks aan een voorwaarde voldoen. Niet van toepassing. Enumerable.All
Queryable.All
Alle Bepaalt of elementen in een reeks aan een voorwaarde voldoen. Niet van toepassing. Enumerable.Any
Queryable.Any
Contains Bepaalt of een reeks een opgegeven element bevat. Niet van toepassing. Enumerable.Contains
Queryable.Contains

Alle

In het volgende voorbeeld worden de All leerlingen/studenten gevonden die hoger dan 70 hebben gescoord op alle 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

Alle

In het volgende voorbeeld worden de Any leerlingen/studenten gevonden die op elk examen hoger dan 95 hebben gescoord.

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

Contains

In het volgende voorbeeld wordt het Contains voorbeeld gebruikt om studenten te vinden die precies 95 hebben gescoord op een 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

Zie ook