.NET(C#) System.Linq中实现多列group by(分组)的示例代码

.NET 中使用 LINQ 可以方便地进行多列分组操作。本文主要介绍.NET(C#)中,使用Linq时实现对多列数据进行分组的方法及示例代码。

1、C# 3或更高版本使用匿名类型

// 声明式查询语法
var result3 = 
    from x in table
    group x by new { x.Column1, x.Column2 } into g
    select new { g.Key.Column1, g.Key.Column2, QuantitySum = g.Sum(x => x.Quantity) };
// /或方法的语法
var result4 = table.GroupBy(x => new { x.Column1, x.Column2 })
    .Select(g => 
      new { g.Key.Column1, g.Key.Column2 , QuantitySum= g.Sum(x => x.Quantity) });

2、C# 7.1或更高版本使用元组和推断的元组元素名

// 声明式查询语法
var result = 
    from x in table
    group x by (x.Column1, x.Column2) into g
    select (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity));
//或方法的语法
var result2 = table.GroupBy(x => (x.Column1, x.Column2))
    .Select(g => (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity)));

推荐阅读
cjavapy编程之路首页