Lamdba及DataTable AsEnumerable()的使用
Lamdba及AsEnumerable()介绍
Lamdba是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例如调用:First, Single, ToList…的时候)才执行。
1.Where语句使用
var var_dtTable = dtTable.AsEnumerable().Where<DataRow>(W => W["NAME"].ToString()=="张三");
int count = var_dtTable.Count<DataRow>();//获取dtTable中NAME为张三的个数
2.Average语句使用
//获取dtTable中avg_name列的平局数
int avg = dtTable.AsEnumerable().Average<DataRow>(A => float.Parse(A["avg_name"].ToString()));
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数据的个数});
//对应的顺序为dtResult列的顺序
var_dtTable.ToList().ForEach(f=> dtResult.Rows.Add(f.groupBy_name,f.sum_name,f.count_name);
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();//数据源
//column_name是要Distinct列的名字
dtTable = dtTable.AsEnumerable().Distinct(new ColumnEquals("column_name")).CopyToDataTable();
Lamdba及DataTable AsEnumerable()的使用相关推荐
- 简洁的导出 datatable到excel,不用组件
简洁的导出 datatable到excel var lines = new List<string>();string[] columnNames = dataTable.Columns. ...
- NET问答: 如何将 DataTable 转成 IEnumerableT ?
咨询区 Roddy Balkan: 我想将一个外域系统中传过来的 DataTable 转成 IEnumerable,下面的代码在 ASP.NET 4.6.1 中是没有问题的. public stati ...
- C# DataTable怎么合计字段
DataTable dt = new DataTable(); var age=dt.Compute("avg(age)",""); var height =d ...
- C# DataTable(System.Data)
环境:Visual Studio 2015,.NET Framework 4.0 本文参考MSDN : https://docs.microsoft.com/zh-cn/ DataTable Data ...
- 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式...
为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式,代码如下: public class DataComparer<T>:IEqualityCompare ...
- LINQ to DataSet
LINQ to DataSet将LINQ和ADO.NET集成,它通过ADO.NET获取数据,然后通过LINQ进行数据查询,从而实现对数据集进行非常复杂查询.本节将介绍如何使用LINQ to DataS ...
- R048---UiPath中四种筛选数据的方法
一.缘起 用RPA处理数据时,对数据进行筛选,是个基本操作,这里将4种方法逐一罗列,供不同场景下选用. 二.使用方法 方法1:用Filter Data Table,这种方法适合普通业务用户. 拖拽该活 ...
- C#如何根据DataTable生成泛型List或者动态类型list
背景:在项目中,sql语句检索返回DataTable,然后根据检索结果做进一步的操作,本篇文章即是介绍如何将DataTable快速生成泛型List返回. 假设存在如下学生类: 1 public cla ...
- C#将DataTable转换成list的方法
本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...
最新文章
- 十六、python沉淀之路--迭代器
- axios 设置拦截器 全局设置带默认参数(发送 token 等)
- 《I'm a Mac:雄狮训练手册》——2.3 账户类型
- postman构造post请求用于接口测试
- Chrome浏览器安装Axure插件教程
- kali攻击139端口_简易入侵139端口
- 四大行业晋身今秋求贤大户 游戏人才缺口奇大
- A-priori算法
- UI设计师未来职业规划
- lineageos信号叉号_安卓手机刷lineageOS后电信卡不能通话解决办法
- 如何使用mysql数据库做网站_php小型数据库(不用mysql做网站)
- win10笔记本识别不到蓝牙鼠标的解决办法
- 数据挖掘与python实践心得体会_2年数据挖掘服务工作心得体会
- c语言中置逆三位正整数,C语言程序设计 – 第 05 章课后习题(11页)-原创力文档...
- 2022 主站及创作侧年度总结 - 相信未来、期待未来
- thinkphp一步提交ajax失败,Thinkphp无法获得AJAX post的数据,很简单的问题就是无法解决?...
- JavaWeb--JDBC核心技术
- android 电池内阻_如何监控Android设备的电池健康状况
- ubuntu 16.04 apt-get 更新使用中科大镜像源
- 【原创】简历中需要注意的 3 个问题