在datatable中连接一些行

本文关键字:连接 datatable | 更新日期: 2023-09-27 17:50:02

我有这样的数据表结构:

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
你有什么主意吗?由于

在datatable中连接一些行

试试这个

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来对值进行求和。如果数据类型不同,则进行相应的解析。