开发手册 欢迎您!
软件开发者资料库

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

本文主要介绍.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)));