如何在datatable中使用groupby進(jìn)行分組統(tǒng)計(jì)
本文介紹了在datatable中使用groupby進(jìn)行分組統(tǒng)計(jì),下面是為大家分享的效果圖和實(shí)現(xiàn)代碼:
實(shí)現(xiàn)效果

在SQL中我們可以使用groupby來進(jìn)行分組統(tǒng)計(jì),如果數(shù)據(jù)在datatable中該如何使用groupby呢,下面的方法可以實(shí)現(xiàn)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("區(qū)域 "+" 庫房"+" 數(shù)量");
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進(jìn)行分組統(tǒng)計(jì)就是通過上面的代碼進(jìn)行實(shí)現(xiàn)的,希望可以對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
.Net(c#)漢字和Unicode編碼互相轉(zhuǎn)換實(shí)例
下面小編就為大家?guī)硪黄?Net(c#)漢字和Unicode編碼互相轉(zhuǎn)換實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
C#中parallel.foreach實(shí)現(xiàn)多線程處理
Parallel.ForEach方法是C#中的一個(gè)并行循環(huán)方法,它可以并行地對(duì)一個(gè)集合進(jìn)行迭代操作,本文主要介紹了C#中parallel.foreach實(shí)現(xiàn)多線程處理,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
同時(shí)兼容JS和C#的RSA加密解密算法詳解(對(duì)web提交的數(shù)據(jù)加密傳輸)
這篇文章主要給大家介紹了關(guān)于同時(shí)兼容JS和C#的RSA加密解密算法,通過該算法可以對(duì)web提交的數(shù)據(jù)進(jìn)行加密傳輸,文中通過圖文及示例代碼介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面來一起看看吧。2017-07-07
Visual C#類的定義及實(shí)現(xiàn)方法實(shí)例解析
這篇文章主要介紹了Visual C#類的定義及實(shí)現(xiàn)方法實(shí)例解析,對(duì)于新手來說有不錯(cuò)的借鑒學(xué)習(xí)價(jià)值,需要的朋友可以參考下2014-07-07
C#使用ZXing.Net實(shí)現(xiàn)生成二維碼和條碼
ZXing用Java實(shí)現(xiàn)的多種格式的一維二維條碼圖像處理庫,而ZXing.Net是其.Net版本的實(shí)現(xiàn),下面我們就來看看 C#如何使用ZXing.Net實(shí)現(xiàn)生成二維碼和條碼吧2023-12-12
深入分析C#中WinForm控件之Dock順序調(diào)整的詳解
本篇文章是對(duì)C#中WinForm控件之Dock順序調(diào)整進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
基于C#實(shí)現(xiàn)簡單的二維碼和條形碼的生成工具
這篇文章主要為大家詳細(xì)介紹了如何基于C#實(shí)現(xiàn)簡單的二維碼和條形碼工具,用于二維碼條形碼的生成與識(shí)別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

