Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah kaedah GroupBy dan Count LINQ digunakan untuk pengagregatan data?

Bagaimanakah kaedah GroupBy dan Count LINQ digunakan untuk pengagregatan data?

DDD
DDDasal
2025-01-22 00:51:11371semak imbas

How can LINQ's GroupBy and Count methods be used for data aggregation?

Gunakan kaedah GroupBy dan Count LINQ untuk pengagregatan data

Pengendali GroupBy dalam LINQ ialah alat yang berkuasa untuk mengagregatkan data berdasarkan kekunci yang ditentukan. Digabungkan dengan kaedah Count(), ia boleh digunakan untuk mengira kejadian nilai terkumpul.

Anggap senario berikut: Anda mempunyai set data yang dipanggil UserInfo, yang mengandungi rekod metrik dan maklumat lain untuk pengguna. Untuk mendapatkan semula bilangan kejadian metrik, anda perlu mengumpulkan data mengikut metrik dan mengira bilangan rekod dalam setiap kumpulan.

<code class="language-c#">// 示例数据集
List<userinfo> data = new List<userinfo>
{
    new UserInfo { Name = "joe", Metric = 1, Day = "01/01/2011" },
    new UserInfo { Name = "jane", Metric = 0, Day = "01/02/2011" },
    new UserInfo { Name = "john", Metric = 2, Day = "01/03/2011" },
    new UserInfo { Name = "jim", Metric = 3, Day = "01/04/2011" }
};</code>

Berikut ialah cara untuk mencapai hasil yang diingini menggunakan LINQ's GroupBy and Count:

<code class="language-c#">var metricCounts = data.GroupBy(info => info.Metric)
                        .Select(group => new { Metric = group.Key, Count = group.Count() })
                        .OrderBy(x => x.Metric);

foreach (var line in metricCounts)
{
    Console.WriteLine($"{line.Metric} {line.Count}");
}</code>

Dalam kod ini, pengendali GroupBy() mengumpulkan data mengikut sifat Metrik, mencipta koleksi objek IEnumerable. Operator Select() kemudian menayangkan setiap kumpulan ke dalam jenis tanpa nama dengan sifat Metrik dan Kira. Akhir sekali, pengendali OrderBy() mengisih keputusan dalam tertib menaik mengikut nilai Metrik.

Output kod ini ialah:

<code>0 1
1 1
2 1
3 1</code>

Ini menunjukkan cara menggunakan LINQ untuk mendapatkan semula data agregat dengan cekap dengan mengumpulkan dan mengira nilai. Dengan memahami penggunaan GroupBy dan Count, anda boleh memanipulasi dan meringkaskan data dalam aplikasi anda dengan berkesan.

Sila ambil perhatian bahawa kiraan Metrik=0 dalam data sampel adalah berbeza dalam artikel asal dan versi yang diubah suai, yang mungkin ralat dalam artikel asal. Versi yang diubah suai adalah lebih konsisten dengan output kod.

Atas ialah kandungan terperinci Bagaimanakah kaedah GroupBy dan Count LINQ digunakan untuk pengagregatan data?. 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