我有这种数据表结构:
TYPE CODE VALUE NAME
-----------------------------
D 123 -4 example1
D 123 5 example1
R 123 1 example1
D 444 5 example2
R 777 -2 example3
我想对行进行求和,其中TYPE和CODE是相同的。 结果将是:
TYPE CODE VALUE NAME
-----------------------------
D 123 1 example1
R 123 1 example1
D 444 5 example2
R 777 -2 example3
请问您有什么想法吗?感谢
答案 0 :(得分:1)
试试这个
var result = (from p in ur_data_table.AsEnumerable()
group p by new{ col1 = p["TYPE"], col2 =
p["CODE"] , col3 = p["NAME"]}
into groupedTable
select new
{
X = groupedTable.Key,
//Each Key contains col1,col2 & col3
VALUE = groupedTable.Sum((s1) =>
int.Parse(s1["VALUE"].ToString()))
}).ToList();
此处首先your datatable
将转换为Ienumerable object
,并根据需要完成的总和将表格与three columns
分组,并保存为表格名称groupedTable
。然后从分组表中选择值,其中X
将包含在Key
的帮助下用于分组的所有列。最后一部分是通过将值解析为int
来对值进行求和,考虑到该列仅包含int
。如果数据类型不同,则相应地解析。希望这会有所帮助。