Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengira dan Mengisih Pendua Berdasarkan Harta dalam Senarai C# Menggunakan LINQ?

Bagaimanakah Saya Boleh Mengira dan Mengisih Pendua Berdasarkan Harta dalam Senarai C# Menggunakan LINQ?

DDD
DDDasal
2025-01-05 08:56:10969semak imbas

How Can I Count and Sort Duplicates Based on a Property in a C# List Using LINQ?

Mengira Pendua Berdasarkan Harta dalam Senarai Objek dengan LINQ

Dalam pengaturcaraan, mencari pendua dalam senarai adalah senario biasa. Artikel ini menangani cabaran mengira pendua berdasarkan sifat tertentu dalam senarai objek menggunakan LINQ (Language Integrated Query) dalam C#.

Andaikan anda mempunyai senarai objek dengan sifat ID, yang mewakili koleksi barang. Matlamat anda adalah untuk mengira bilangan kejadian bagi setiap ID unik dan mengisih hasil menurun mengikut kiraan tertinggi.

Untuk mencapai matlamat ini, anda boleh memanfaatkan kumpulan berkuasa LINQ mengikut dan memesan mengikut pengendali. Langkah berikut menggariskan proses:

  1. Penghimpunan Mengikut Harta: Gunakan operasi "kumpulan mengikut" untuk mengumpulkan objek dalam senarai mengikut sifat ID mereka. Ini mewujudkan subkumpulan, di mana setiap kumpulan mengandungi objek dengan ID yang sama.
  2. Mengira Pendua: Dalam setiap kumpulan, kira kiraan objek menggunakan kaedah "Kiraan".
  3. Isih mengikut Kiraan: Seterusnya, susun kumpulan mengikut kiraan objek dalam tertib menurun menggunakan pengendali "orderby". Ini menyusun kumpulan berdasarkan bilangan pendua tertinggi.
  4. Memilih Keputusan: Akhir sekali, pilih sifat yang diingini daripada setiap kumpulan, seperti kiraan, sifat yang digunakan untuk pengumpulan dan sebarang tambahan maklumat diperlukan.

Kod Pelaksanaan:

Berikut ialah contoh pelaksanaan kod dalam C#:

var query = list.GroupBy(x => x.ID)
    .Select(x => new {
        Count = x.Count(),
        CategoryID = x.Key,
        // Other properties as needed
    })
    .OrderByDescending(x => x.Count);

Dalam contoh ini, "senarai" mewakili koleksi objek. Pertanyaan pertama mengumpulkan objek mengikut sifat "ID" mereka, kemudian mengira objek dalam setiap kumpulan. Jenis tanpa nama yang terhasil termasuk kiraan dan CategoryID (dalam kes ini, ID kumpulan). Akhirnya, keputusan disusun dalam tertib menurun berdasarkan kiraan.

Ungkapan LINQ ini membolehkan anda mengira dan mengisih pendua dengan mudah berdasarkan sifat tertentu dalam senarai objek anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira dan Mengisih Pendua Berdasarkan Harta dalam Senarai C# Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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