Gunakan LINQ untuk mengumpulkan dan mengira data dengan cekap
LINQ (Language Integrated Query) dalam C# menyediakan cara yang berkuasa untuk memanipulasi dan membuat pertanyaan data. Dalam situasi di mana anda perlu mengumpulkan dan mengira set data, LINQ menyediakan penyelesaian yang ringkas dan cekap.
Andaikan kami mempunyai set data yang mengandungi pengguna dan metrik serta tarikh yang berkaitan:
<code>UserInfo(姓名, 指标, 日期, 其他指标) 数据: joe 1 2011/01/01 5 jane 0 2011/01/02 9 john 2 2011/01/03 0 jim 3 2011/01/04 1 jean 1 2011/01/05 3 jill 2 2011/01/06 5 jeb 0 2011/01/07 3 jenn 0 2011/01/08 7</code>
Matlamat kami adalah untuk mendapatkan jadual, dikumpulkan mengikut susunan penunjuk (0, 1, 2, 3...), dan menunjukkan jumlah bilangan kejadian setiap penunjuk.
Mengumpul dan mengira menggunakan LINQ
Untuk mencapai ini menggunakan LINQ, kita boleh menggunakan kaedah 'GroupBy' dan 'Select':
<code>foreach(var line in data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric)) { Console.WriteLine("{0} {1}", line.Metric, line.Count); }</code>
Arahan:
Output:
<code>0 3 1 2 2 2 3 1</code>
Cara lain
Walaupun penyelesaian LINQ yang disediakan adalah cekap, ia boleh dipermudahkan lagi:
<code>var result = data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric);</code>
Satu-satunya perbezaan di sini ialah daripada menggunakan gelung 'foreach' untuk mengulangi keputusan, kami menetapkannya kepada pembolehubah yang dipanggil 'hasil'.
Isi penting
Atas ialah kandungan terperinci Bagaimanakah Data Kumpulan LINQ dan Mengira Kejadian dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!