首页 > 后端开发 > C++ > 如何通过LINQ中的多列分组数据?

如何通过LINQ中的多列分组数据?

DDD
发布: 2025-01-31 15:31:09
原创
268 人浏览过

How to Group Data by Multiple Columns in LINQ?

LINQ 多列分组详解

在 SQL 中,可以使用 GROUP BY 子句根据多个列对数据进行分组。例如:

SELECT * FROM <tablename> GROUP BY <column1>,<column2>
登录后复制

如何在 LINQ 中实现类似的功能呢?

使用匿名类型

一种方法是使用匿名类型。以下是一个示例:

var groupedData = x.GroupBy(x => new { x.Column1, x.Column2 });
登录后复制

这段代码根据 x 序列中元素的 Column1Column2 属性对元素进行分组,为每个唯一的值组合创建一个匿名类型。

数据示例

考虑以下数据结构:

public class QuantityBreakdown
{
    public int MaterialID { get; set; }
    public int ProductID { get; set; }
    public float Quantity { get; set; }
}
登录后复制

以及以下 INSERT 语句:

INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity)
SELECT MaterialID, ProductID, SUM(Quantity)
FROM @Transactions
GROUP BY MaterialID, ProductID
登录后复制

可以使用以下代码将此转换为 LINQ:

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)
    });
登录后复制

此 LINQ 表达式按 MaterialIDProductID 对事务进行分组,然后计算每个组的 Quantity 值之和。

以上是如何通过LINQ中的多列分组数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板