Quantifiziereroperationen in LINQ (C#)

Quantifizierer-Vorgänge geben einen Boolean-Wert zurück, der angibt, ob einige oder alle Elemente in einer Sequenz eine Bedingung erfüllen.

Die folgende Abbildung zeigt zwei verschiedene Quantifizierer-Vorgänge bei zwei verschiedenen Quellsequenzen. Die erste Operation fragt, ob eines der Elemente das Zeichen „A“ ist. Die zweite Operation fragt, ob alle Elemente das Zeichen „A“ sind. Beide Methoden geben in diesem Beispiel true zurück.

LINQ-Quantifizierer-Vorgänge

Methodenname Beschreibung C#-Abfrageausdruckssyntax Weitere Informationen
Alle Bestimmt, ob alle Elemente in einer Sequenz eine Bedingung erfüllen. Nicht zutreffend. Enumerable.All
Queryable.All
Beliebig Bestimmt, ob Elemente einer Sequenz eine Bedingung erfüllen. Nicht zutreffend. Enumerable.Any
Queryable.Any
Enthält Bestimmt, ob eine Sequenz ein angegebenes Element enthält. Nicht zutreffend. Enumerable.Contains
Queryable.Contains

All

Im folgenden Beispiel wird All verwendet, um Lernende zu ermitteln, die bei allen Prüfungen eine höhere Bewertung als 70 hatten.

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

Any

Im folgenden Beispiel wird Any verwendet, um Lernende zu ermitteln, die bei einem Examen eine höhere Bewertung als 95 hatten.

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

Enthält

Im folgenden Beispiel wird Contains verwendet, um Lernende zu ermitteln, die bei einer Prüfung eine Bewertung von genau 95 hatten.

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

Siehe auch