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

如何通過LINQ中的多列分組數據?

DDD
DDD原創
2025-01-31 15:31:09223瀏覽

How to Group Data by Multiple Columns in LINQ?

LINQ 多列分組詳解

在 SQL 中,可以使用 GROUP BY 子句根據多個列對數據進行分組。例如:

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

如何在 LINQ 中實現類似的功能呢?

使用匿名類型

一種方法是使用匿名類型。以下是一個示例:

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

這段代碼根據 x 序列中元素的 Column1Column2 屬性對元素進行分組,為每個唯一的值組合創建一個匿名類型。

數據示例

考慮以下數據結構:

<code class="language-csharp">public class QuantityBreakdown
{
    public int MaterialID { get; set; }
    public int ProductID { get; set; }
    public float Quantity { get; set; }
}</code>

以及以下 INSERT 語句:

<code class="language-sql">INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity)
SELECT MaterialID, ProductID, SUM(Quantity)
FROM @Transactions
GROUP BY MaterialID, ProductID</code>

可以使用以下代碼將此轉換為 LINQ:

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

此 LINQ 表達式按 MaterialIDProductID 對事務進行分組,然後計算每個組的 Quantity 值之和。

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

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