Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara kumpulan data dengan pelbagai lajur di Linq?
Dalam SQL, anda boleh menggunakan klausa
untuk kumpulan data berdasarkan pelbagai lajur. Contohnya:
GROUP BY
Bagaimana untuk melaksanakan fungsi serupa di Linq?
<code class="language-sql">SELECT * FROM <tablename> GROUP BY <column1>,<column2></code>Gunakan jenis tanpa nama
Satu kaedah adalah menggunakan jenis tanpa nama. Berikut adalah contoh:
Kod ini dikelompokkan berdasarkan atributdan
unsur -unsur dalam urutan<code class="language-csharp">var groupedData = x.GroupBy(x => new { x.Column1, x.Column2 });</code>untuk membuat jenis tanpa nama untuk setiap gabungan nilai yang unik.
x
Contoh data Column1
Column2
dan pernyataan sisipan berikut:
anda boleh menggunakan kod berikut untuk menukar ini ke linq:
<code class="language-csharp">public class QuantityBreakdown { public int MaterialID { get; set; } public int ProductID { get; set; } public float Quantity { get; set; } }</code>
Ekspresi LINQ ini dibayar mengikut
<code class="language-sql">INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID</code>dan
, dan kemudian mengira jumlah nilai
setiap kumpulan.<code class="language-csharp">var groupedTransactions = transactions .GroupBy(t => new { t.MaterialID, t.ProductID }) .Select(g => new QuantityBreakdown { MaterialID = g.Key.MaterialID, ProductID = g.Key.ProductID, Quantity = g.Sum(t => t.Quantity) });</code>
Atas ialah kandungan terperinci Bagaimana cara kumpulan data dengan pelbagai lajur di Linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!