Mengira Pendua mengikut Harta Menggunakan LINQ
Dalam senario ini, anda mempunyai senarai objek dengan sifat ID. Matlamatnya adalah untuk mengira dan mengumpulkan objek berdasarkan ID mereka dan memaparkan keputusan dalam cara yang diisih, dengan objek dengan kiraan tertinggi di bahagian atas.
Mengumpulkan mengikut ID
LINQ menawarkan operasi 'kumpulan mengikut' untuk mengumpulkan objek berdasarkan sifat tertentu. Dalam kes anda, anda ingin mengumpulkan mengikut harta ID. Begini cara anda boleh mencapai ini:
var grouped = items.GroupBy(item => item.ID);
Selepas mengumpulkan, anda akan mempunyai koleksi kumpulan, di mana setiap kumpulan mewakili objek dengan ID yang sama.
Mengira Item dalam Kumpulan
Dengan kumpulan yang dibuat, anda boleh menggunakan kaedah 'Count()' untuk mengira bilangan objek dalam setiap kumpulan. Hasilnya ialah koleksi pasangan nilai kunci, dengan kuncinya ialah ID dan nilainya ialah kiraan.
var counted = grouped.Select(group => new { ID = group.Key, Count = group.Count() });
Isih mengikut Kiraan
Akhir sekali , untuk mengisih keputusan dalam tertib menurun mengikut kiraan, anda boleh menggunakan 'OrderByDescending()' kaedah.
var sorted = counted.OrderByDescending(pair => pair.Count);
Menggabungkan Keputusan ke dalam Senarai Baharu
Untuk memaparkan keputusan dalam format yang diingini, anda perlu mencipta senarai objek baharu yang mengandungi ID, kiraan dan nama permainan. Anda boleh menggunakan gabungan sifat dan unjuran untuk mencapai ini:
var results = sorted.Select(pair => new { ID = pair.ID, Count = pair.Count, GameName = items.First(item => item.ID == pair.ID).GameName });
Ini akan memberi anda senarai objek dengan sifat yang diperlukan.
Dengan mengikuti langkah ini, anda boleh mengira pendua berdasarkan sifat ID dan mengisih keputusan mengikut kiraan menggunakan LINQ.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira dan Mengisih Objek Pendua mengikut Harta ID Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!