Operasi Kuantifier di LINQ (C#)
Operasi kuantifier mengembalikan nilai Boolean yang menunjukkan apakah beberapa atau semua elemen secara berurutan memenuhi kondisi.
Penting
Sampel ini menggunakan System.Collections.Generic.IEnumerable<T> sumber data. Sumber data berdasarkan System.Linq.IQueryProvider penggunaan System.Linq.IQueryable<T> sumber data dan pohon ekspresi. Pohon ekspresi memiliki batasan pada sintaks C# yang diizinkan. Selain itu, setiap IQueryProvider
sumber data, seperti EF Core dapat memberlakukan lebih banyak batasan. Periksa dokumentasi untuk sumber data Anda.
Ilustrasi berikut menggambarkan dua operasi pembilang yang berbeda pada dua urutan sumber yang berbeda. Operasi pertama menanyakan apakah salah satu elemen adalah karakter 'A'. Operasi kedua menanyakan apakah semua elemen adalah karakter 'A'. Kedua metode mengembalikan true
dalam contoh ini.
Nama Metode | Deskripsi | Sintaksis Ekspresi Kueri C# | Informasi Selengkapnya |
---|---|---|---|
Semua | Menentukan apakah semua elemen dalam urutan memenuhi kondisi. | Tidak berlaku. | Enumerable.All Queryable.All |
Mana pun | Menentukan apakah ada elemen yang secara berurutan memenuhi suatu kondisi. | Tidak berlaku. | Enumerable.Any Queryable.Any |
Berisi | Menentukan apakah urutan berisi elemen tertentu. | Tidak berlaku. | Enumerable.Contains Queryable.Contains |
Semua
Contoh berikut menggunakan All
untuk menemukan siswa yang mendapat skor di atas 70 pada semua ujian.
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
Mana pun
Contoh berikut menggunakan Any
untuk menemukan siswa yang memiliki skor lebih besar dari 95 pada ujian apa pun.
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
Berisi
Contoh berikut menggunakan Contains
untuk menemukan siswa yang mendapat skor tepat 95 pada ujian.
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