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
Person
Id
Id
Mengendalikan pelbagai sifat
List<Person> distinctPeople = allPeople .GroupBy(p => p.Id) .Select(g => g.First()) .ToList();
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 FavoriteColor
. Jika
List<Person> distinctPeople = allPeople .GroupBy(p => new { p.Id, p.FavoriteColor }) .Select(g => g.First()) .ToList();
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!