如何在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进行分组统计就是通过上面的代码进行实现的,希望可以对大家的学习有所帮助。

以上是 如何在datatable中使用groupby进行分组统计 的全部内容, 来源链接: utcz.com/z/330281.html

回到顶部