Lamdba及DataTable AsEnumerable()的使用
1.Where语句使用
var var_dtTable = dtTable.AsEnumerable().Where<DataRow>(W => W["NAME"].ToString()=="张三"); int count = var_dtTable.Count<DataRow>();//获取dtTable中NAME为张三的个数
2.Average语句使用
int avg = dtTable.AsEnumerable().Average<DataRow>(A => float.Parse(A["avg_name"].ToString())) //获取dtTable中avg_name列的平局数
3.GroupBy
DataTable dtTable = new DataTable();//数据源 DataTable dtResult = new DataTable(); dtResult.Columns.Add("groupBy_name", typeof(string)); dtResult.Columns.Add("sum_name", typeof(int)); dtResult.Columns.Add("count_name", typeof(int)); var var_dtTable= dtTable.AsEnumerable().GroupBy(G => G["groupBy_name"].ToString()).Select(S => new { groupBy_name= s.Key,//获取分组的值 sum_name= s.Sum(m => m.Field<int>("sum_name")),//获取列名为sum_name数据的和 count_name= s.Count(m => m.Field<int>("count_name"))//获取列名为count_name数据的个数 }); var_dtTable.ToList().ForEach(f=> dtResult.Rows.Add(f.groupBy_name,f.sum_name,f.count_name); //对应的顺序为dtResult列的顺序
4.OrderBy
DataTable dtTable = new DataTable();//数据源 dtTable = dtTable.AsEnumerable().OrderByDescending(o => o["OrderBy_name"]).CopyToDataTable();//降序 dtTable = dtTable.AsEnumerable().OrderBy(o => o["OrderBy_name"]).CopyToDataTable();//升序
5.Distinct
DataTable dtTable = new DataTable();//数据源 dtTable = dtTable.AsEnumerable().Distinct(new ColumnEquals("column_name")).CopyToDataTable(); //column_name是要Distinct列的名字
分类:
Linq
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤