Bagikan melalui


Memfilter Data di C# dengan LINQ

Pemfilteran mengacu pada operasi pembatasan tataan hasil agar hanya berisi elemen-elemen yang memenuhi kondisi tertentu. Ini juga disebut sebagai memilih elemen yang cocok dengan kondisi yang ditentukan.

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 menunjukkan hasil pemfilteran urutan karakter. Predikat untuk operasi pemfilteran menentukan bahwa karakter harus 'A'.

Diagram yang memperlihatkan operasi pemfilteran LINQ

Metode operator kueri standar yang melakukan pilihan tercantum dalam tabel berikut:

Nama Metode Deskripsi Sintaksis Ekspresi Kueri C# Informasi Selengkapnya
OfType Memilih nilai, tergantung pada kemampuannya untuk diubah ke tipe tertentu. Tidak dapat diterapkan. Enumerable.OfType

Queryable.OfType
Di mana Memilih nilai yang didasarkan pada fungsi predikat. where Enumerable.Where

Queryable.Where

Contoh berikut menggunakan klausul where untuk memfilter dari array string yang memiliki panjang tertentu.

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query = from word in words
                            where word.Length == 3
                            select word;

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Kueri yang setara menggunakan sintaks metode diperlihatkan dalam kode berikut:

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query =
    words.Where(word => word.Length == 3);

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Lihat juga