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()的使用相关推荐

  1. 简洁的导出 datatable到excel,不用组件

    简洁的导出 datatable到excel var lines = new List<string>();string[] columnNames = dataTable.Columns. ...

  2. NET问答: 如何将 DataTable 转成 IEnumerableT ?

    咨询区 Roddy Balkan: 我想将一个外域系统中传过来的 DataTable 转成 IEnumerable,下面的代码在 ASP.NET 4.6.1 中是没有问题的. public stati ...

  3. C# DataTable怎么合计字段

    DataTable dt = new DataTable(); var age=dt.Compute("avg(age)",""); var height =d ...

  4. C# DataTable(System.Data)

    环境:Visual Studio 2015,.NET Framework 4.0 本文参考MSDN : https://docs.microsoft.com/zh-cn/ DataTable Data ...

  5. 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式...

    为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式,代码如下: public class DataComparer<T>:IEqualityCompare ...

  6. LINQ to DataSet

    LINQ to DataSet将LINQ和ADO.NET集成,它通过ADO.NET获取数据,然后通过LINQ进行数据查询,从而实现对数据集进行非常复杂查询.本节将介绍如何使用LINQ to DataS ...

  7. R048---UiPath中四种筛选数据的方法

    一.缘起 用RPA处理数据时,对数据进行筛选,是个基本操作,这里将4种方法逐一罗列,供不同场景下选用. 二.使用方法 方法1:用Filter Data Table,这种方法适合普通业务用户. 拖拽该活 ...

  8. C#如何根据DataTable生成泛型List或者动态类型list

    背景:在项目中,sql语句检索返回DataTable,然后根据检索结果做进一步的操作,本篇文章即是介绍如何将DataTable快速生成泛型List返回. 假设存在如下学生类: 1 public cla ...

  9. C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...

最新文章

  1. 十六、python沉淀之路--迭代器
  2. axios 设置拦截器 全局设置带默认参数(发送 token 等)
  3. 《I'm a Mac:雄狮训练手册》——2.3 账户类型
  4. postman构造post请求用于接口测试
  5. Chrome浏览器安装Axure插件教程
  6. kali攻击139端口_简易入侵139端口
  7. 四大行业晋身今秋求贤大户 游戏人才缺口奇大
  8. A-priori算法
  9. UI设计师未来职业规划
  10. lineageos信号叉号_安卓手机刷lineageOS后电信卡不能通话解决办法
  11. 如何使用mysql数据库做网站_php小型数据库(不用mysql做网站)
  12. win10笔记本识别不到蓝牙鼠标的解决办法
  13. 数据挖掘与python实践心得体会_2年数据挖掘服务工作心得体会
  14. c语言中置逆三位正整数,C语言程序设计 – 第 05 章课后习题(11页)-原创力文档...
  15. 2022 主站及创作侧年度总结 - 相信未来、期待未来
  16. thinkphp一步提交ajax失败,Thinkphp无法获得AJAX post的数据,很简单的问题就是无法解决?...
  17. JavaWeb--JDBC核心技术
  18. android 电池内阻_如何监控Android设备的电池健康状况
  19. ubuntu 16.04 apt-get 更新使用中科大镜像源
  20. 【原创】简历中需要注意的 3 个问题

热门文章

  1. 分布式计算的基本原理
  2. 通俗理解面向对象和面向过程+编程思想
  3. [ACNOI2022]零一串
  4. Java面试热点问题,synchronized原理剖析与优化
  5. cmd命令窗口如何创建和删除文件、文件夹,写入内容到文件
  6. Java SE 学习记录06
  7. echarts 国际化
  8. iOS热更新方案(过AppStore审核)
  9. python3爬虫实战(一)爬取创业邦创投库
  10. Matlab矩阵论矩阵分析计算实现(四)求史密斯标准型和约当标准型