Bagikan melalui


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.

Operasi Pengkualifikasi LINQ

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

Lihat juga