Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le operazioni quantificatori restituiscono un Boolean valore che indica se alcuni o tutti gli elementi di una sequenza soddisfano una condizione.
Importante
In questi esempi viene usata un'origine dati System.Collections.Generic.IEnumerable<T>. Le sorgenti di dati basate su System.Linq.IQueryProvider utilizzano sorgenti di dati System.Linq.IQueryable<T> e alberi di espressioni. La sintassi consentita in C# per gli alberi delle espressioni ha limitazioni. Inoltre, ogni origine dati IQueryProvider, ad esempio EF Core può imporre altre restrizioni. Consultare la documentazione relativa all'origine dati.
La figura seguente illustra operazioni di quantificazione diverse su sequenze di origine diverse. La prima operazione chiede se uno degli elementi è il carattere 'A'. La seconda operazione chiede se tutti gli elementi sono il carattere 'A'. Entrambi i metodi restituiscono true in questo esempio.
| Nome metodo | Descrizione | Sintassi di espressione della query C# | Altre informazioni |
|---|---|---|---|
| Tutti | Determina se tutti gli elementi di una sequenza soddisfano una condizione. | Non applicabile. | Enumerable.All Queryable.All |
| Qualunque | Determina se gli elementi di una sequenza soddisfano una condizione. | Non applicabile. | Enumerable.Any Queryable.Any |
| Contiene | Determina se una sequenza contiene un elemento specificato. | Non applicabile. | Enumerable.Contains Queryable.Contains |
Tutti
Nell'esempio seguente, All viene utilizzato per trovare gli studenti che hanno ottenuto un punteggio superiore a 70 in tutti gli esami.
Annotazioni
È possibile fare riferimento alle origini dati comuni per questa area nell'articolo Panoramica degli operatori di query 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
Qualunque
Il seguente esempio usa il Any per trovare gli studenti che hanno ottenuto un punteggio maggiore di 95 in qualsiasi esame.
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
Contiene
L'esempio seguente usa Contains per trovare gli studenti che hanno ottenuto il punteggio esatto di 95 in un esame.
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