首頁 >後端開發 >C++ >如何使用LINQ通過多列分組數據?

如何使用LINQ通過多列分組數據?

Susan Sarandon
Susan Sarandon原創
2025-01-31 15:36:14840瀏覽

How to Group Data by Multiple Columns Using LINQ?

使用LINQ根據多個列分組數據

在SQL中,您可以使用GROUP BY子句根據多個列分組數據。這允許您根據指定列中值的唯一組合來聚合數據。

LINQ使用GroupBy擴展方法提供了類似的分組機制。但是,與SQL不同,LINQ處理的是對象,它需要一種方法來識別分組標準。

要在LINQ中按多個列分組,可以使用匿名類型來表示組鍵。匿名類型是一種臨時、未命名的類型,允許您根據一組已知屬性對對象進行分組。

考慮以下SQL查詢:

<code class="language-sql">SELECT * FROM <table> GROUP BY <column1>, <column2></code>

要將此查詢轉換為LINQ,您可以使用匿名類型,如下所示:

<code class="language-csharp">var groupedData = table.GroupBy(x => new { x.Column1, x.Column2 });</code>

此代碼根據Column1和Column2屬性的值對錶中的行進行分組。生成的groupedData變量是IGrouping類型,其中TKey表示用於分組的匿名類型,TElement表示組中的各個行。

然後,您可以迭代這些組並根據需要聚合數據,這與您在SQL中所做的方法類似:

<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>

此代碼將打印組鍵(具有Column1和Column2值的匿名類型)以及每個組中的各個行。

以上是如何使用LINQ通過多列分組數據?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn