Linq 合并DataTable中的行,并sum求和解决方案
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,怎么写啊。
给个例子
------解决方案--------------------
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 }); }