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

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

Susan Sarandon
發布: 2025-01-31 15:36:14
原創
789 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板