LINQ - Operator Kueri
Serangkaian metode ekstensi yang membentuk pola kueri dikenal sebagai Operator Kueri Standar LINQ. Sebagai blok pembangun ekspresi kueri LINQ, operator ini menawarkan berbagai kemampuan kueri seperti pemfilteran, pengurutan, proyeksi, agregasi, dll.
Operator kueri standar LINQ dapat dikategorikan menjadi yang berikut berdasarkan fungsinya.
- Operator Filter
- Bergabunglah dengan Operator
- Operasi Proyeksi
- Operator Penyortiran
- Operator Pengelompokan
- Conversions
- Concatenation
- Aggregation
- Operasi Pengukur
- Operasi Partisi
- Operasi Pembangkitan
- Atur Operasi
- Equality
- Operator Elemen
Operator Filter
Pemfilteran adalah operasi untuk membatasi kumpulan hasil sedemikian rupa sehingga hanya memilih elemen yang memenuhi kondisi tertentu.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
dimana | Memfilter nilai berdasarkan fungsi predikat | dimana | Dimana |
OfType | Memfilter nilai berdasarkan kemampuannya untuk menjadi tipe yang ditentukan | Tak dapat diterapkan | Tak dapat diterapkan |
Bergabunglah dengan Operator
Bergabung mengacu pada operasi di mana sumber data dengan hubungan yang sulit diikuti satu sama lain secara langsung ditargetkan.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Ikuti | Operator menggabungkan dua urutan berdasarkan kunci yang cocok | bergabung… dalam… pada… sama dengan… | Dari x In…, y In… Dimana xa = ya |
GroupJoin | Bergabunglah dengan dua urutan dan kelompokkan elemen yang cocok | bergabung… dalam… pada… sama… menjadi… | Gabung Grup… Masuk… Pada… |
Operasi Proyeksi
Proyeksi adalah operasi di mana suatu objek diubah menjadi bentuk yang sama sekali baru dengan hanya properti tertentu.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Pilih | Operator memproyeksikan nilai berdasarkan fungsi transformasi | Pilih | Pilih |
SelectMany | Operator memproyeksikan urutan nilai yang didasarkan pada fungsi transformasi serta meratakannya menjadi satu urutan | Gunakan beberapa dari klausa | Gunakan beberapa klausa Dari |
Operator Penyortiran
Operasi pengurutan memungkinkan pengurutan elemen urutan berdasarkan satu atau lebih atribut.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Dipesan oleh | Operator mengurutkan nilai dalam urutan menaik | dipesan oleh | Dipesan oleh |
OrderByDescending | Operator mengurutkan nilai dalam urutan menurun | orderby ... turun | Order By ... Menurun |
Lalu | Menjalankan pengurutan sekunder dalam urutan menaik | dipesan oleh …, … | Dipesan oleh …, … |
ThenByDescending | Menjalankan pengurutan sekunder dalam urutan menurun | orderby…,… turun | Diurutkan Berdasarkan…,… Menurun |
Balik | Melakukan pembalikan urutan elemen dalam koleksi | Tak dapat diterapkan | Tak dapat diterapkan |
Operator Pengelompokan
Operator memasukkan data ke dalam beberapa kelompok berdasarkan atribut bersama yang umum.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
GroupBy | Atur urutan item dalam grup dan kembalikan sebagai koleksi IEnumerable dari tipe IGrouping <key, element> | kelompok… menurut -atau- kelompok… menurut… menjadi… | Kelompokkan… Oleh… Ke… |
Untuk mencari | Jalankan operasi pengelompokan di mana urutan pasangan kunci dikembalikan | Tak dapat diterapkan | Tak dapat diterapkan |
Konversi
Operator mengubah jenis objek input dan digunakan dalam berbagai aplikasi.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
AsEnumerable | Mengembalikan input yang diketik sebagai IEnumerable <T> | Tak dapat diterapkan | Tak dapat diterapkan |
Dapat Dibayar | A (generik) IEnumerable diubah menjadi IQuerizable (generik) | Tak dapat diterapkan | Tak dapat diterapkan |
Pemeran | Melakukan casting elemen koleksi ke jenis tertentu | Gunakan variabel rentang yang diketik secara eksplisit. Misalnya: dari string str dalam kata-kata | Dari… Sebagai… |
OfType | Memfilter nilai berdasarkan nilainya, bergantung pada kemampuannya untuk dilemparkan ke jenis tertentu | Tak dapat diterapkan | Tak dapat diterapkan |
ToArray | Memaksa eksekusi kueri dan melakukan konversi koleksi menjadi array | Tak dapat diterapkan | Tak dapat diterapkan |
ToDictionary | Berdasarkan fungsi pemilih kunci, setel elemen ke dalam Dictionary <TKey, TValue> dan memaksa eksekusi kueri LINQ | Tak dapat diterapkan | Tak dapat diterapkan |
ToList | Memaksa eksekusi kueri dengan mengonversi koleksi menjadi Daftar <T> | Tak dapat diterapkan | Tak dapat diterapkan |
Untuk mencari | Memaksa eksekusi kueri dan memasukkan elemen ke dalam Lookup <TKey, TElement> berdasarkan fungsi pemilih kunci | Tak dapat diterapkan | Tak dapat diterapkan |
Rangkaian
Melakukan penggabungan dua urutan dan sangat mirip dengan operator Union dalam hal pengoperasiannya kecuali fakta bahwa ini tidak menghapus duplikat.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Concat | Dua urutan digabungkan untuk pembentukan satu urutan tunggal. | Tak dapat diterapkan | Tak dapat diterapkan |
Pengumpulan
Melakukan semua jenis agregasi yang diinginkan dan memungkinkan pembuatan agregasi kustom di LINQ.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Agregat | Beroperasi pada nilai koleksi untuk melakukan operasi agregasi kustom | Tak dapat diterapkan | Tak dapat diterapkan |
Rata-rata | Nilai rata-rata kumpulan nilai dihitung | Tak dapat diterapkan | Agregat… Dalam… Ke Rata-Rata () |
Menghitung | Menghitung elemen yang memenuhi fungsi predikat dalam koleksi | Tak dapat diterapkan | Agregat… Dalam… Ke Hitungan () |
LonCount | Menghitung elemen yang memenuhi fungsi predikat dalam koleksi besar | Tak dapat diterapkan | Agregat… Dalam… Ke LongCount () |
Max | Temukan nilai maksimum dalam sebuah koleksi | Tak dapat diterapkan | Agregat… Dalam… Ke Max () |
Min | Cari tahu nilai minimum yang ada dalam koleksi | Tak dapat diterapkan | Agregat… Dalam… Ke Min () |
Jumlah | Cari tahu jumlah nilai dalam koleksi | Tak dapat diterapkan | Agregat… In… Into Sum () |
Operasi Pengukur
Operator ini mengembalikan nilai Boolean yaitu True atau False ketika beberapa atau semua elemen dalam suatu urutan memenuhi kondisi tertentu.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Semua | Mengembalikan nilai 'True' jika semua elemen urutan memenuhi kondisi predikat | Tak dapat diterapkan | Gabungkan… Dalam… Ke Semua (…) |
Apa saja | Menentukan dengan mencari urutan apakah ada elemen yang sama memenuhi kondisi tertentu | Tak dapat diterapkan | Agregat… Dalam… Ke Apa Saja () |
Mengandung | Mengembalikan nilai 'True' jika menemukan bahwa elemen tertentu ada di sana dalam urutan jika urutan tidak mengandung elemen tertentu, nilai 'false' dikembalikan | Tak dapat diterapkan | Tak dapat diterapkan |
Operator Partisi
Bagilah urutan masukan menjadi dua bagian terpisah tanpa mengatur ulang elemen urutan dan mengembalikan salah satunya.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Melewatkan | Melewati beberapa elemen dalam urutan tertentu dan mengembalikan elemen yang tersisa | Tak dapat diterapkan | Melewatkan |
SkipWhile | Sama seperti Skip dengan satu-satunya pengecualian bahwa jumlah elemen untuk dilewati ditentukan oleh kondisi Boolean | Tak dapat diterapkan | Lewati Sementara |
Mengambil | Ambil sejumlah elemen tertentu dari sebuah urutan dan lewati elemen yang tersisa | Tak dapat diterapkan | Mengambil |
TakeWhile | Sama seperti Take kecuali fakta bahwa jumlah elemen yang akan diambil ditentukan oleh kondisi Boolean | Tak dapat diterapkan | Take While |
Operasi Pembangkitan
Urutan nilai baru dibuat oleh operator generasi.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
DefaultIfEmpty | Saat diterapkan ke urutan kosong, buat elemen default dalam urutan | Tak dapat diterapkan | Tak dapat diterapkan |
Kosong | Mengembalikan urutan nilai kosong dan merupakan operator generasi paling sederhana | Tak dapat diterapkan | Tak dapat diterapkan |
Jarak | Menghasilkan koleksi yang memiliki urutan bilangan bulat atau angka | Tak dapat diterapkan | Tak dapat diterapkan |
Ulang | Menghasilkan urutan yang berisi nilai berulang dengan panjang tertentu | Tak dapat diterapkan | Tak dapat diterapkan |
Atur Operasi
Ada empat operator untuk operasi yang ditetapkan, masing-masing memberikan hasil berdasarkan kriteria yang berbeda.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
Berbeda | Menghasilkan daftar nilai unik dari koleksi dengan memfilter data duplikat jika ada | Tak dapat diterapkan | Berbeda |
Kecuali | Membandingkan nilai dua koleksi dan mengembalikan nilai dari satu koleksi yang tidak ada di koleksi lainnya | Tak dapat diterapkan | Tak dapat diterapkan |
Memotong | Mengembalikan kumpulan nilai yang ditemukan identik dalam dua koleksi terpisah | Tak dapat diterapkan | Tak dapat diterapkan |
Persatuan | Menggabungkan konten dari dua koleksi berbeda menjadi satu daftar yang juga tanpa konten duplikat | Tak dapat diterapkan | Tak dapat diterapkan |
Persamaan
Membandingkan dua kalimat (dapat dihitung) dan menentukan apakah keduanya sama persis atau tidak.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
SequenceEqual | Menghasilkan nilai Boolean jika dua urutan ditemukan identik satu sama lain | Tak dapat diterapkan | Tak dapat diterapkan |
Operator Elemen
Kecuali DefaultIfEmpty, delapan operator elemen kueri standar lainnya mengembalikan satu elemen dari koleksi.
Tunjukkan Contoh
Operator | Deskripsi | C # Query Expression Syntax | VB Query Expression Syntax |
---|---|---|---|
ElementAt | Mengembalikan elemen yang ada dalam indeks tertentu dalam koleksi | Tak dapat diterapkan | Tak dapat diterapkan |
ElementAtOrDefault | Sama seperti ElementAt kecuali fakta bahwa ia juga mengembalikan nilai default jika indeks tertentu di luar jangkauan | Tak dapat diterapkan | Tak dapat diterapkan |
Pertama | Mengambil elemen pertama dalam koleksi atau elemen pertama yang memenuhi kondisi tertentu | Tak dapat diterapkan | Tak dapat diterapkan |
FirstOrDefault | Sama seperti First kecuali fakta bahwa ia juga mengembalikan nilai default jika tidak ada keberadaan elemen seperti itu | Tak dapat diterapkan | Tak dapat diterapkan |
Terakhir | Mengambil elemen terakhir yang ada dalam koleksi atau elemen terakhir yang memenuhi kondisi tertentu | Tak dapat diterapkan | Tak dapat diterapkan |
LastOrDefault | Sama seperti Last kecuali fakta bahwa ia juga mengembalikan nilai default jika tidak ada elemen seperti itu | Tak dapat diterapkan | Tak dapat diterapkan |
Tunggal | Menampilkan elemen tunggal dari koleksi atau elemen tunggal yang memenuhi kondisi tertentu | Tak dapat diterapkan | Tak dapat diterapkan |
SingleOrDefault | Sama seperti Single, hanya saja ia juga mengembalikan nilai default jika tidak ada elemen tunggal seperti itu | Tak dapat diterapkan | Tak dapat diterapkan |
DefaultIfEmpty | Mengembalikan nilai default jika koleksi atau daftar kosong atau nol | Tak dapat diterapkan | Tak dapat diterapkan |