Penggabungan dan pengelompokan data LINQ: penjelasan terperinci tentang kaedah yang cekap
LINQ (Language Integrated Query) menyediakan cara yang berkuasa dan ringkas untuk membuat pertanyaan dan memanipulasi data dalam pelbagai senario. Salah satu tugas biasa ialah mengumpulkan data berdasarkan kriteria tertentu dan mengira bilangan kejadian dalam setiap kumpulan.
Menggunakan LINQ untuk pengumpulan dan pengiraan data
Andaikan terdapat set data bernama UserInfo, mengandungi medan seperti nama, metrik, hari dan other_metric. Untuk mengisih mengikut nilai metrik dan mendapatkan kiraan metrik, anda boleh menggunakan sintaks LINQ berikut:
<code class="language-csharp">var groupMetrics = from info in data // 从数据源开始 group info by info.metric into grp // 按'metric'字段分组 select new { Key = grp.Key, Count = grp.Count() }; // 选择键和计数</code>
Pertanyaan ini melakukan perkara berikut:
Selepas melaksanakan pertanyaan ini, anda akan mendapat senarai yang mengandungi nilai metrik dan kiraan sepadannya, sekali gus menyediakan ringkasan taburan metrik dalam set data.
Hasil pengumpulan tersuai
Penyelesaian di atas menggunakan jenis tanpa nama untuk membina hasil terkumpul. Walau bagaimanapun, anda juga boleh menentukan kelas tersuai untuk mewakili data terkumpul, memberikan anda lebih kawalan ke atas format output.
Penyelesaian lain
Alternatif menggunakan LINQ kepada SQL disebut dalam soalan asal:
<code class="language-csharp">var pl = from r in info orderby r.metric group r by r.metric into grp select new { key = grp.Key, cnt = grp.Count()};</code>
Walaupun kedua-dua penyelesaian mencapai matlamat untuk mengumpulkan mengikut metrik dan mengira kejadian, sintaks LINQ kepada SQL direka khusus untuk menanyakan pangkalan data, manakala sintaks LINQ tulen boleh digunakan pada mana-mana koleksi terhitung objek UserInfo. Kaedah yang anda pilih bergantung pada konteks dan sumber data yang anda gunakan.
Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Mengumpul Data dan Mengira Kejadian dengan Cekap Dalam Setiap Kumpulan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!