C#Linq分组汇总(转)

Linq分组分两种,一种是表分组汇总,另一种是List<>分组汇总。下面分别举例说明两种分组汇总。

第一种,表的分组汇总:

DataTable table = new DataTable();
table.Columns.Add("列名1", Type.GetType("System.Int32"));
table.Columns.Add("列名2", Type.GetType("System.Int32"));
table.Columns.Add("列名3", Type.GetType("System.String"));
table.Columns.Add("列名4", Type.GetType("System.String"));
table.Columns.Add("列名5", Type.GetType("System.String"));
table.Columns.Add("数值或金额列名", Type.GetType("System.String"));

//为table表赋值

……

//按[列名2]分组汇总

var dtSummary = from q in table.AsEnumerable()
group q by new { 列名2= q.Field<int>("列名2")} into g
select new
{
列名2= g.Key.列名2,
数值或金额汇总列名= g.Sum(a => a.Field<decimal>("数值或金额列名"))
};
第二种,List<>分组汇总:

var listSummary = from p in List<实体>
group p by new { 属性1 = p.属性1 } into g
select new
{
属性1 = g.Key.属性1 ,
数值或金额汇总= g.Sum(a => a.数值或金额属性)
};
————————————————
版权声明:本文为CSDN博主「DevOps-2018」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zjfjifei2008/article/details/17018865

posted @ 2022-04-12 10:58  语讷言拙  阅读(2219)  评论(0编辑  收藏  举报