Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengira Kejadian Elemen dengan Cekap dalam Senarai C# Menggunakan GroupBy?

Bagaimanakah Saya Boleh Mengira Kejadian Elemen dengan Cekap dalam Senarai C# Menggunakan GroupBy?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-02 13:03:39260semak imbas

How Can I Efficiently Count Element Occurrences in a C# List Using GroupBy?

Mengira Kejadian Elemen dalam Senarai Menggunakan GroupBy

Mengira bilangan kejadian setiap elemen dalam senarai boleh menjadi tugas yang membosankan, terutamanya jika senarainya besar. Walau bagaimanapun, terdapat penyelesaian yang elegan menggunakan kaedah GroupBy dalam C#.

Kaedah GroupBy mengambil urutan elemen sebagai input dan mengumpulkannya berdasarkan kunci yang ditentukan. Dalam kes ini, kami mahu mengumpulkan elemen mengikut nilainya.

var l1 = new List<int>() { 1, 2, 3, 4, 5, 2, 2, 2, 4, 4, 4, 1 };

var g = l1.GroupBy(i => i);

Kaedah GroupBy mengembalikan IGrouping objek, dengan TKey ialah jenis kunci kumpulan dan TElement ialah jenis elemen dalam kumpulan. Dalam kes ini, kunci pengelompokan ialah elemen itu sendiri (iaitu, nilai elemen) dan elemen dalam kumpulan ialah kejadian nilai tersebut (iaitu, bilangan kali nilai itu muncul dalam senarai).

Lelaran pada setiap kumpulan memberi kita kunci (nilai elemen) dan bilangan kejadian (kiraan kumpulan).

foreach (var grp in g)
{
  Console.WriteLine($"{grp.Key} {grp.Count()}");
}

Output:

1 2
2 4
3 1
4 4
5 1

Penyelesaian ini cekap dan mudah untuk dilaksanakan, menjadikannya tambahan yang berharga kepada mana-mana kit alat pengaturcara.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Elemen dengan Cekap dalam Senarai C# Menggunakan GroupBy?. 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