首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Linq 合并DataTable中的行,并sum求和解决方案

2012-06-08 
Linq 合并DataTable中的行,并sum求和DatatablemedicIDpricenumunit00011.210盒00011.215盒00021415支00031

Linq 合并DataTable中的行,并sum求和
Datatable
medicID price num unit
0001 1.2 10 盒
0001 1.2 15 盒
0002 14 15 支
0003 10 10 盒
0002 14 10 盒

当medicID price unit都相同时 合并一行,并求合并行num的和
用linq,怎么写啊。
给个例子

[解决办法]

C# code
void Main(){    var dt=new DataTable();    dt.Columns.Add("medicID");    dt.Columns.Add("price");    dt.Columns.Add("num",typeof(int));    dt.Columns.Add("unit");    dt.Rows.Add("0001","1.2",10,"盒");    dt.Rows.Add("0001","1.2",15,"盒");    dt.Rows.Add("0002","14",15,"支");    dt.Rows.Add("0003","10",10,"盒");    dt.Rows.Add("0002","14",10,"盒");        var query=dt.AsEnumerable()                .GroupBy(d=>new {medicID=d.Field<string>("medicID"),price=d.Field<string>("price"),unit=d.Field<string>("unit")})                .Select(g=>new{                    medicID=g.Key.medicID,                    price=g.Key.price,                    num=g.Sum(d=>d.Field<int>("num")),                    unit=g.Key.unit                });     } 

热点排行