当前位置: 移动技术网 > IT编程>开发语言>c# > 如何在datatable中使用groupby进行分组统计

如何在datatable中使用groupby进行分组统计

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码: 实现效果 在sql中我们可以使用groupby来进行分组统计,

本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码:

实现效果

在sql中我们可以使用groupby来进行分组统计,如果数据在datatable中该如何使用groupby呢,下面的方法可以实现groupby,代码如下:

 datatable dt = new datatable("cart"); 
      datacolumn dc1 = new datacolumn("areaid", type.gettype("system.string")); 
      datacolumn dc2 = new datacolumn("house", type.gettype("system.string")); 
      datacolumn dc3 = new datacolumn("seq", type.gettype("system.string")); 
      datacolumn dc4 = new datacolumn("remark", type.gettype("system.string")); 
     
      dt.columns.add(dc1); 
      dt.columns.add(dc2); 
      dt.columns.add(dc3); 
      dt.columns.add(dc4); 
 
 
      datarow dr = dt.newrow(); 
      dr["areaid"] = "北京"; 
      dr["house"] = "北京仓库"; 
      dr["seq"] = "2"; 
      dr["remark"] = "货到付款"; 
      dt.rows.add(dr); 
 
 
      datarow dr1 = dt.newrow(); 
      dr1["areaid"] = "北京"; 
      dr1["house"] = "上海仓库"; 
      dr1["seq"] = "1"; 
      dr1["remark"] = "货到付款"; 
      dt.rows.add(dr1); 
 
      datarow dr2 = dt.newrow(); 
      dr2["areaid"] = "上海"; 
      dr2["house"] = "上海仓库"; 
      dr2["seq"] = "1"; 
      dr2["remark"] = "货到付款"; 
      dt.rows.add(dr2); 
 
      datarow dr3 = dt.newrow(); 
      dr3["areaid"] = "上海"; 
      dr3["house"] = "北京仓库"; 
      dr3["seq"] = "1"; 
      dr3["remark"] = "货到付款"; 
      dt.rows.add(dr3); 
 
 
      var query = from t in dt.asenumerable() 
            group t by new { t1 = t.field<string>("areaid"), t2 = t.field<string>("seq") } into m 
            select new 
            { 
              areaid = m.key.t1, 
              seq = m.key.t2, 
              house = m.first().field<string>("house"), 
              rowcount = m.count() 
            }; 
 
 
       console.writeline("区域 "+" 库房"+"  数量"); 
      foreach (var item in query.tolist()) 
      { 
        if (item.rowcount>1) 
        { 
          messagebox.show(item.areaid+"---"+item.house); 
        } 
        console.writeline(item.areaid+"---"+item.house+"---"+item.rowcount); 
        console.writeline("\r\n"); 
      }

 在datatable中使用groupby进行分组统计就是通过上面的代码进行实现的,希望可以对大家的学习有所帮助。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网