在数据表中加入一些行

时间:2015-05-20 08:53:31

标签: c# 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

请问您有什么想法吗?感谢

1 个答案:

答案 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。如果数据类型不同,则相应地解析。希望这会有所帮助。