Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ GroupBy Boleh Digunakan untuk Mengira Kejadian Metrik dalam Set Data?

Bagaimanakah LINQ GroupBy Boleh Digunakan untuk Mengira Kejadian Metrik dalam Set Data?

Linda Hamilton
Linda Hamiltonasal
2025-01-22 00:57:08327semak imbas

How Can LINQ GroupBy Be Used to Count Metric Occurrences in a Dataset?

Gunakan LINQ GroupBy untuk mengira kejadian

LINQ menyediakan cara mudah untuk mengumpulkan item data berdasarkan kunci yang ditentukan dan mengira kejadiannya. Pertimbangkan set data berikut:

<code>UserInfo(name, metric, day, other_metric)</code>

Data sampel:

<code>joe  1 01/01/2011 5
jane 0 01/02/2011 9
john 2 01/03/2011 0
jim  3 01/04/2011 1
jean 1 01/05/2011 3
jill 2 01/06/2011 5
jeb  0 01/07/2011 3
jenn 0 01/08/2011 7</code>

Matlamatnya ialah untuk membuat jadual yang menyenaraikan metrik mengikut susunan dan jumlah bilangan kejadiannya. Ungkapan LINQ yang sesuai adalah seperti berikut:

<code>var counts = data.GroupBy(i => i.metric)
                .Select(g => new { Metric = g.Key, Count = g.Count() })
                .OrderBy(r => r.Metric);</code>

Ia berfungsi seperti berikut:

  1. GroupBy: Kaedah GroupBy mengumpulkan elemen dalam metric berdasarkan atribut data. Ini akan menghasilkan koleksi kumpulan, setiap kumpulan mewakili nilai metrik yang unik.
  2. Pilih: Untuk setiap kumpulan, kaedah Pilih mencipta objek baharu dengan dua sifat: Metrik (kunci kumpulan, mewakili nilai metrik) dan Kira (bilangan elemen dalam kumpulan, mewakili metrik) bilangan kejadian).
  3. OrderBy: Akhir sekali, kaedah OrderBy mengisih koleksi objek yang dijana mengikut atribut Metrik, memastikan penunjuk disusun dalam tertib menaik.

Melaksanakan ungkapan LINQ ini akan menghasilkan output yang diingini:

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

Atas ialah kandungan terperinci Bagaimanakah LINQ GroupBy Boleh Digunakan untuk Mengira Kejadian Metrik dalam Set 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