Delen 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 gebaseerd op System.Linq.IQueryProvider maken gebruik van System.Linq.IQueryable<T> gegevensbronnen en expressiebomen. 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 Kwantificeerder-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
Welke dan ook Bepaalt of elementen in een reeks aan een voorwaarde voldoen. Niet van toepassing. Enumerable.Any
Queryable.Any
Bevat Bepaalt of een reeks een opgegeven element bevat. Niet van toepassing. Enumerable.Contains
Queryable.Contains

Alle

In het volgende voorbeeld worden de All studenten gevonden die hoger dan 70 hebben gescoord op alle examens.

Opmerking

Raadpleeg de algemene gegevensbronnen voor dit gebied in het artikel Overzicht van Standard-queryoperators .

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

Welke dan ook

In het volgende voorbeeld wordt de Any gebruikt om studenten te vinden die op een willekeurig 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

Bevat

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