C# Linq及Lamda表达式实战应用之 GroupBy 分组统计

在项目中做统计图表的时候,需要对查询出来的列表数据进行分组统计,首先想到的是避免频繁去操作数据库可以使用 Linq

eg:

//例如对列表中的Cu元素进行按年GroupBy分组统计
//包含年份,平均值,最大值,总数

//写法1:lamda 表达式写法(推荐)
 var listCu = list.GroupBy(a => a.Year).Select(g =>(new{ year=g.Key,avg=g.Average(m=>m.Cu),max=g.Max(n=>n.Cu),count=g.Count()}));
//写法2:类SQL语言写法 最终编译器会把它转化为lamda表达式
 var listCu2 = from item in list
                    group item by item.Year
                    into g
                    select new { year = g.Key, avg = g.Average(m => m.Cu), max = g.Max(n => n.Cu), count = g.Count() };

 类似效果图(统计了各个元素每一年的平均值):

原文地址:https://www.cnblogs.com/qinyi173/p/7124739.html