Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara kumpulan data dengan pelbagai lajur menggunakan LINQ?
Dalam SQL, anda boleh menggunakan Kumpulan dengan klausa berdasarkan pelbagai lajur. Ini membolehkan anda mengagregatkan data berdasarkan gabungan unik lajur yang ditentukan.
LINQ menyediakan mekanisme pengelompokan yang sama dengan kaedah lanjutan GroupBy. Walau bagaimanapun, tidak seperti SQL, LINQ memproses objek, yang memerlukan cara untuk mengenal pasti piawaian kumpulan.
Untuk menekan pelbagai lajur di LINQ, anda boleh menggunakan jenis tanpa nama untuk mewakili kekunci kumpulan. Jenis Anonymous adalah jenis sementara dan tidak dinamakan yang membolehkan anda mengumpulkan objek berdasarkan sekumpulan atribut yang diketahui.
Pertimbangkan pertanyaan SQL berikut:
Untuk menukar pertanyaan ini ke Linq, anda boleh menggunakan jenis tanpa nama, seperti yang ditunjukkan di bawah:
<code class="language-sql">SELECT * FROM <table> GROUP BY <column1>, <column2></code>
Kod ini dibayar kepada baris dalam jadual berdasarkan nilai lajur1 dan lajur2. Pembolehubah kumpulan yang dihasilkan adalah Igrouping & lt;
<code class="language-csharp">var groupedData = table.GroupBy(x => new { x.Column1, x.Column2 });</code>
maka anda boleh melelehkan kumpulan ini dan agregat data seperti yang diperlukan, yang serupa dengan kaedah yang anda lakukan dalam SQL:
Kod ini akan dicetak Kunci Kumpulan (jenis tanpa nama dengan nilai Column1 dan Column2) dan setiap baris dalam setiap kumpulan.
<code class="language-csharp">foreach (var group in groupedData) { Console.WriteLine($"Group key: {group.Key}"); Console.WriteLine("QuantityBreakdown:"); foreach (var row in group) { Console.WriteLine($" - MaterialID: {row.MaterialID}, ProductID: {row.ProductID}, Quantity: {row.Quantity}"); } }</code>
Atas ialah kandungan terperinci Bagaimana cara kumpulan data dengan pelbagai lajur menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!