加入数据表中的一些行

Join some rows in datatable

我有这样的数据表结构:

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

你有什么想法吗?谢谢

试试这个

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,然后把table和three columns分组,根据需要求和存为table名字groupedTable。然后从分组 table 我们 select 值,其中 X 将包含在 Key 的帮助下用于分组的所有列。最后一部分是通过将值解析为 int 来求和,考虑到该列仅包含 int。如果数据类型不同,则相应地进行解析。希望这会有所帮助。