Bagikan melalui


Operasi quantifier di LINQ (C#)

Operasi quantifier mengembalikan Boolean nilai yang menunjukkan apakah beberapa atau semua elemen dalam urutan 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 kuantifier 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 menghasilkan true pada contoh ini.

Operasi Penghitung LINQ

Nama Metode Deskripsi Sintaksis Ekspresi Kueri C# Informasi Selengkapnya
Semua Menentukan apakah semua elemen dalam urutan memenuhi kondisi. Tidak dapat diterapkan. Enumerable.All
Queryable.All
Apa saja Menentukan apakah ada elemen dalam urutan yang memenuhi kondisi. Tidak dapat diterapkan. Enumerable.Any
Queryable.Any
Berisi Menentukan apakah urutan berisi elemen tertentu. Tidak dapat diterapkan. Enumerable.Contains
Queryable.Contains

Semua

Contoh berikut menggunakan All untuk menemukan siswa yang mendapat skor di atas 70 pada semua ujian.

Nota

Anda dapat merujuk ke sumber data umum untuk area ini di artikel Gambaran Umum Operator Kueri Standar .

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

Apa saja

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