C#對DataTable中的某列進行分組
更新時間:2022年03月18日 11:30:04 作者:.NET開發(fā)菜鳥
這篇文章介紹了C#對DataTable某列進行分組的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
有時候我們從數(shù)據(jù)庫中查詢出來數(shù)據(jù)之后,需要按照DataTable的某列進行分組,可以使用下面的方法實現(xiàn),代碼如下:
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataTableGroupDemo { class Program { static void Main(string[] args) { // 準備數(shù)據(jù) DataTable dt = new DataTable(); // 創(chuàng)建列 DataColumn dcName = new DataColumn("Name", typeof(string)); DataColumn dcAge = new DataColumn("Age", typeof(Int32)); DataColumn dcScore = new DataColumn("Score", typeof(Int32)); // 添加列 dt.Columns.Add(dcName); dt.Columns.Add(dcAge); dt.Columns.Add(dcScore); // 添加數(shù)據(jù) dt.Rows.Add(new object[] { "Tom", 23, 67 }); dt.Rows.Add(new object[] { "Tom", 23, 67 }); dt.Rows.Add(new object[] { "Jack", 21, 100 }); dt.Rows.Add(new object[] { "Greey", 24, 56 }); dt.Rows.Add(new object[] { "Kevin", 24, 77 }); dt.Rows.Add(new object[] { "Tom", 23, 82 }); dt.Rows.Add(new object[] { "Greey", 24, 80 }); dt.Rows.Add(new object[] { "Jack", 21, 90 }); #region 使用Linq expression to DataTable group by var query = from p in dt.AsEnumerable() group p by new { name = p.Field<string>("Name"),score=p.Field<Int32>("Score") } into m select new { Name = m.Key.name, Score=m.Key.score }; #endregion // 輸出 Console.WriteLine("Linq"); foreach (var item in query) { Console.WriteLine(item); } Console.WriteLine("GroupBy"); IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["Name"].ToString()); foreach (IGrouping<string, DataRow> ig in result) { Console.WriteLine("key=" + ig.Key + ":"); foreach (DataRow dr in ig) { Console.WriteLine(dr["Name"].ToString().PadRight(10) + dr["Age"].ToString().PadRight(10) + dr["Score"].ToString().PadRight(10)); } } Console.ReadKey(); } } }
程序運行效果
到此這篇關(guān)于C#對DataTable某列進行分組的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#基于Aspose.PDF實現(xiàn)PDF轉(zhuǎn)Word工具
這篇文章主要為大家介紹了C#如何基于Aspose.PDF庫,實現(xiàn)PDF文件轉(zhuǎn)為Word(DOC/DOCX)格式的功能,感興趣的小伙伴可以跟隨小編一起學習一下2024-11-11C#中Sleep() 和 Wait()的區(qū)別小結(jié)
Sleep()和 Wait()是兩個不同的方法,用于控制線程的執(zhí)行,本文主要介紹了C#中Sleep()和Wait()的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-04-04C#使用Automation實現(xiàn)控制自動撥打接聽電話
這篇文章主要為大家詳細介紹了C#如何使用Automation實現(xiàn)控制自動撥打接聽電話,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02