Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menggunakan kaedah LINQ yang berbeza () pada sifat objek tertentu?

Bagaimanakah saya boleh menggunakan kaedah LINQ yang berbeza () pada sifat objek tertentu?

Barbara Streisand
Lepaskan: 2025-02-02 09:16:08
asal
318 orang telah melayarinya

How Can I Use LINQ's Distinct() Method on Specific Object Properties?

menggunakan Linq's berbeza () untuk sifat objek unik

Kaedah LINQ

dengan cekap menghilangkan item pendua dari urutan. Walau bagaimanapun, anda sering perlu mengenal pasti keunikan berdasarkan sifat objek tertentu, bukan keseluruhan objek. Distinct() Contohnya: Orang yang unik berdasarkan id

Katakan anda mempunyai kelas dengan harta . Untuk mendapatkan senarai orang yang unik berdasarkan ID mereka, kumpulan senarai dengan

dan pilih orang pertama dari setiap kumpulan:

Person Id Id Mengendalikan pelbagai sifat

List<Person> distinctPeople = allPeople
    .GroupBy(p => p.Id)
    .Select(g => g.First())
    .ToList();
Salin selepas log masuk
3

Nota penting: Keserasian pembekal pertanyaan

Id Beberapa pembekal pertanyaan (seperti Versi Lama Rangka Kerja Entiti) mungkin membuang pengecualian jika kumpulan kosong. Dalam kes sedemikian, ganti dengan FavoriteColor. Jika

kembali
List<Person> distinctPeople = allPeople
    .GroupBy(p => new { p.Id, p.FavoriteColor })
    .Select(g => g.First())
    .ToList();
Salin selepas log masuk
, anda perlu mengendalikan kemungkinan itu dalam kod anda.

EF Core (Pre-Version 6) Penyelesaian

First() Untuk versi teras EF sebelum 6, pendekatan yang lebih mantap diperlukan untuk mengendalikan kumpulan kosong yang berpotensi. Rujuk Jawapan Stack Overflow ini untuk penyelesaian terperinci: FirstOrDefault() https://www.php.cn/link/7dd21654ce1c39ec7632d219e8e71f11 FirstOrDefault() null

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan kaedah LINQ yang berbeza () pada sifat objek tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan