欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-12 15:41:22
本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码: 实现效果 在sql中我们可以使用groupby来进行分组统计,...

本文介绍了在datatable中使用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进行分组统计就是通过上面的代码进行实现的,希望可以对大家的学习有所帮助。