Pertanyaan verifikasi bersifat ya atau tidak: adakah nilai di bawah batas kelulusan, dan apakah semua peserta memenuhi syarat. Operator kuantor menjawab pertanyaan tersebut dengan nilai bool, dan eksekusinya berhenti segera setelah jawaban pasti ditemukan.
Tiga Operator Kuantor #
Contoh berikut menguji daftar nilai dan daftar peserta ujian:
record Siswa(string Nama, int Nilai);
int[] nilai = { 85, 60, 90 };
List<Siswa> siswa = new()
{
new Siswa("Budi", 85),
new Siswa("Siti", 60),
new Siswa("Dewi", 90)
};
Console.WriteLine($"Ada nilai remedial: {nilai.Any(n => n < 70)}");
Console.WriteLine($"Semua lulus: {nilai.All(n => n >= 70)}");
Console.WriteLine($"Memuat nilai 90: {nilai.Contains(90)}");
Console.WriteLine($"Siti terdaftar: {siswa.Any(s => s.Nama == "Siti")}");Output yang Dihasilkan:
Ada nilai remedial: True
Semua lulus: False
Memuat nilai 90: True
Siti terdaftar: TrueMari kita bedah baris demi baris:
nilai.Any(n => n < 70): mengembalikanTruepada kecocokan pertama tanpa memeriksa sisa elemen.nilai.All(n => n >= 70): mengembalikanFalsepada pelanggaran pertama tanpa menelusuri sisa elemen.nilai.Contains(90): mencari satu nilai tertentu tanpa perlu lambda.siswa.Any(s => s.Nama == "Siti"):Anyjuga dipakai untuk menguji keberadaan berdasarkan property elemen.
Ringkasan Perilaku #
| Operator | Pertanyaan | Berhenti saat |
|---|---|---|
Any | adakah elemen yang memenuhi? | kecocokan pertama |
All | apakah semua memenuhi? | pelanggaran pertama |
Contains | adakah nilai tertentu? | nilai ditemukan |
Any tanpa predikat hanya menguji apakah urutan memuat elemen. Untuk HashSet<T> dan Dictionary<TKey,TValue>, Contains memakai hash sehingga pencariannya jauh lebih cepat daripada menelusuri seluruh isi.
Perilaku berhenti dini ini menghemat waktu pada predikat yang mahal: bila Any menemukan kecocokan pada elemen kedua, sisa ribuan elemen tidak diperiksa. Karena hasilnya hanya satu nilai bool, operator ini juga lazim dipakai untuk validasi sebelum pemrosesan, misalnya memastikan setiap transaksi bernilai positif sebelum laporan disusun. Satu operator pembanding yang sering berguna bersama kelompok ini adalah SequenceEqual, yang menguji dua urutan memiliki isi dan urutan yang sama persis.