Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Quantifier-műveletek olyan Boolean értéket adnak vissza, amely jelzi, hogy a sorozat egyes elemei megfelelnek-e egy feltételnek.
Fontos
Ezek a minták adatforrást System.Collections.Generic.IEnumerable<T> használnak. A System.Linq.IQueryProvider alapú adatforrások a System.Linq.IQueryable<T> adatforrásokat és a kifejezésfákat használják. A kifejezésfák korlátozottan használhatják az engedélyezett C# szintaxist. Emellett minden adatforrás IQueryProvider , például az EF Core további korlátozásokat is alkalmazhat. Ellenőrizze az adatforrás dokumentációját.
Az alábbi ábra két különböző kvantálási műveletet ábrázol két különböző forrásütemezésen. Az első művelet megkérdezi, hogy az elemek közül bármelyik az "A" karakter-e. A második művelet megkérdezi, hogy az összes elem az "A" karakter-e. Ebben a példában mindkét metódus visszatér true .
| Metódus neve | Leírás | C# lekérdezési kifejezés szintaxisa | További információ |
|---|---|---|---|
| Összes | Meghatározza, hogy a sorozat összes eleme megfelel-e egy feltételnek. | Nem alkalmazható. | Enumerable.All Queryable.All |
| Bármely | Meghatározza, hogy a sorozat bármely eleme megfelel-e egy feltételnek. | Nem alkalmazható. | Enumerable.Any Queryable.Any |
| Tartalmaz | Meghatározza, hogy egy sorozat tartalmaz-e egy adott elemet. | Nem alkalmazható. | Enumerable.Contains Queryable.Contains |
Összes
Az alábbi példa az All összes vizsgán 70 fölötti pontszámot elért tanulók megkeresésére használható.
Megjegyzés:
A terület gyakori adatforrásai a Standard lekérdezési operátorok áttekintése című cikkben találhatóak.
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
Bármely
Az alábbi példa a Any 95-nél nagyobb pontszámot elért diákok megkeresésére használható bármely vizsgán.
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
Tartalmaz
Az alábbi példa azokat a Contains tanulókat keresi, akik pontosan 95 pontot szereztek egy vizsgán.
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