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.
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