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

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

Barbara Streisand
Barbara Streisandasal
2025-01-03 09:45:39271semak imbas

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

Mengira Kejadian dalam Senarai menggunakan C#

Dalam C#, terdapat pelbagai kaedah yang tersedia untuk mengira kejadian setiap elemen dalam senarai dengan berkesan . Satu pendekatan melibatkan penggunaan kaedah sambungan GroupBy:

using System;
using System.Collections.Generic;
using System.Linq;

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

// Group the list elements based on their values
var groupedList = list.GroupBy(i => i);

// Iterate over each group and count the occurrences
foreach (var group in groupedList)
{
    Console.WriteLine($"{group.Key}: {group.Count()}");
}

Dalam contoh ini, kaedah GroupBy mengambil Func perwakilan, yang menentukan cara mengumpulkan elemen. Dalam kes ini, kami mengumpulkan mengikut elemen itu sendiri. GroupedList yang terhasil ialah IEnumerable>, di mana setiap IGrouping mewakili elemen unik dan kiraannya. Sifat Kunci IGrouping mewakili nilai elemen dan kaedah Count() mengembalikan bilangan kejadian untuk elemen tersebut.

Sebagai alternatif, anda boleh menggunakan Dictionary:

using System;
using System.Collections.Generic;

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

// Create a dictionary to store element counts
Dictionary<int, int> counts = new Dictionary<int, int>();

// Populate the dictionary with counts
foreach (var item in list)
{
    if (counts.ContainsKey(item))
    {
        counts[item]++;
    }
    else
    {
        counts[item] = 1;
    }
}

// Iterate over the dictionary to print element counts
foreach (var kvp in counts)
{
    Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}

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