Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menggunakan LINQ untuk mendapatkan objek yang berbeza berdasarkan sifat tertentu?
Menggunakan atribut spesifik linq ke senarai objek, aplikasi digunakan
Kaedah
Penyelesaian: Distinct()
Atas sebab ini, anda boleh mengumpulkan objek mengikut atribut yang diperlukan dan pilih elemen pertama dari setiap kumpulan. Ini akan memberikan anda senarai, objek dalam senarai ini adalah unik untuk atribut yang ditentukan. Contoh:
Pertimbangkan objek orang dengan atribut ID dan nama:
untuk mendapatkan senarai kakitangan yang berbeza berdasarkan atribut ID:
Ini akan menghasilkan senarai yang mengandungi hanya Person1 dan Person3.
<code>Person1:Id=1,Name="Test1" Person2:Id=1,Name="Test1" Person3:Id=2,Name="Test2"</code>
pelbagai atribut:
<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => p.Id) .Select(g => g.First()) .ToList();</code>
Jika anda perlu berkumpulan mengikut pelbagai atribut, anda boleh menggunakan jenis tanpa nama:
nota:
Beberapa penyedia pertanyaan mungkin perlu menggunakan
bukan<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => new { p.Id, p.FavoriteColor }) .Select(g => g.First()) .ToList();</code>untuk memastikan bahawa setiap kumpulan mempunyai sekurang -kurangnya satu elemen.
Untuk kaedah yang serasi yang serasi dengan LINQ ke entiti (Core EF) (sebelum versi ke -6), sila rujuk jawapan ini: https://www.php.cn/link/7DD21654CE1C39EC763219E71F11
Atas ialah kandungan terperinci Bagaimana cara menggunakan LINQ untuk mendapatkan objek yang berbeza berdasarkan sifat tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!