首页 新闻 会员 周边 捐助

C# DataTable 分组

0
[已解决问题] 解决于 2014-08-12 15:03

表(这里是指C#中DataTable这种数据)结构(一共四列,Load Plan#、ID/Style、CBM、KGS)及数据
 Load Plan#        ID/Style                 CBM         KGS
 REF111              54836099             1.500        0.500
 REF111                                          1.500        0.500
                          54836099              2.000       1.000
                           54836099             1.500        0.500

 期待结果:
Load Plan#        ID/Style               TotalCBM         TotalKGS
REF111              54836099            1.500               0.500
REF111                                         1.500               0.500
                          54836099            3.500              1.500

说明:1 按Load Plan# 和 ID/Style 两列分组后,对CBM和KGS两列求和。
           2 Load Plan# 和 ID/Style 两列可以有空值,空值和空值被视为相当(第三列和第四列分到一组)。
           3 Load Plan# 这个列名中存在空格符(一共10个字符),即Load Plan#(十个字符)不是LoadPlan#(九个字符)。

由于第2个和第3个条件,实现起来总是有些错误。 麻烦大家给个思路,有测试代码更好,谢谢。

freecodeX的主页 freecodeX | 初学一级 | 园豆:148
提问于:2014-08-11 18:14
< >
分享
最佳答案
0

的datatable是从数据库中读出来的吧?

为啥不直接通过sql来实现呢

奖励园豆:5
刘宏玺 | 专家六级 |园豆:14020 | 2014-08-11 23:33

准确说,Datatable中的数据第一阶段是通过Sql server处理过,然后第二阶段在C#中使用System.Data库处理后产生的数据保存在DataTable(正如在问题中所述),最后需要对DataTable中的数据分组,产生的数据格式才符合规范,返回给客户端。在System.Linq库中是有GroupBy方法的,但是由于第2、3个条件的存在,发现C#不能很好的能解决这两个问题,这也是我提这个问题的原因

freecodeX | 园豆:148 (初学一级) | 2014-08-12 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册