Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah LINQ Boleh Mengira dan Merumuskan Objek Pendua dengan Cekap dalam Senarai C#?

Bagaimanakah LINQ Boleh Mengira dan Merumuskan Objek Pendua dengan Cekap dalam Senarai C#?

Barbara Streisand
Lepaskan: 2025-01-03 02:25:38
asal
937 orang telah melayarinya

How Can LINQ Efficiently Count and Summarize Duplicate Objects in a C# List?

Mengira Pendua dengan LINQ dan C

Dalam bidang manipulasi data, selalunya perlu untuk mengagregatkan data berdasarkan kriteria tertentu. Satu situasi sedemikian timbul apabila anda perlu mengira pendua dalam senarai objek. LINQ (Language Integrated Query) menawarkan penyelesaian yang elegan untuk tugas ini.

Masalah: Merumuskan Objek Pendua

Pertanyaan Awal:

var q = from x in inventory
                 group x by x into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key.gameName, gameID = g.Key.gameID };
Salin selepas log masuk

Sementara pertanyaan ini menyediakan kiraan dan nama untuk setiap pendua, ia meninggalkan ID permainan. Untuk menangani perkara ini, kami mesti mengubah suai pendekatan kami.

Penyelesaian: Pengumpulan dan Pemilihan Tersuai

Pengumpulan mengikut Harta Objek:

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };
Salin selepas log masuk

Dengan mengumpulkan objek berdasarkan nama permainan mereka harta, kami mengagregatkan objek dengan nama yang sama dengan berkesan.

Memilih Objek Pertama ID:

gameID = g.First().gameID
Salin selepas log masuk

Memandangkan objek dengan nama yang sama mungkin mempunyai ID yang berbeza, kami menggunakan First() untuk mendapatkan ID objek pertama dalam kumpulan. Ini memastikan kami mempunyai ID untuk setiap nama permainan yang unik.

Contoh Lengkap:

Mengekapkan logik di atas dalam coretan kod yang lengkap:

var inventory = new List<game>();

// ... additional code for populating the inventory list

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };

// ... additional code for displaying the results
Salin selepas log masuk

Sekarang, pertanyaan akan memaparkan kiraan, nama permainan dan ID permainan dengan betul untuk setiap nama permainan unik, yang disusun mengikut kiraan tertinggi pendua.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Mengira dan Merumuskan Objek Pendua dengan Cekap dalam Senarai C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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