首页 > 编程语言 >C# Lambda及DataTable AsEnumerable()的使用

C# Lambda及DataTable AsEnumerable()的使用

时间:2023-05-29 10:35:14浏览次数:35  
标签:name C# AsEnumerable dtTable var new DataTable

Lambda是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例如调用: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数据的个数
                });
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();//数据源
//column_name是要Distinct列的名字
dtTable = dtTable.AsEnumerable().Distinct(new ColumnEquals("column_name")).CopyToDataTable();

 

标签:name,C#,AsEnumerable,dtTable,var,new,DataTable
From: https://www.cnblogs.com/lgx5/p/17439683.html

相关文章

  • rabbitmq自动及手动ACK
      mq的ack  主要是确认消息被消费者消费完成后通知服务器将队列里面的消息清除。而如果不配置Ack的话呢,我测试过他会自动的忽略,也就是说此时的服务是no_ack=true的模式,就是说只要我发现你是消费了这个数据,至于异常不异常的,我不管了。通知Ack机制就是这么来的,更加灵活的,我们需要......
  • CISA零信任成熟度模型(译文)
    摘要:2023年4月,CISA发布了ZTMM(ZeroTrustMaturityModel)2.0版本,按照联邦行政命令《改善国家网络安全》(EO14028)和美国白宫办公厅(OMB)备忘录《将美国政府引向零信任安全原则》(M-22-09)对其零信任成熟度模型进行了调整完善。本文对ZTMM2.0进行了翻译,旨在帮助零信任供应商、企业用户和......
  • 循环依赖导致编译或者服务启动报错问题:The dependencies of some of the beans in the
    错误如图: 我的是服务器启动服务时报错:***************************APPLICATIONFAILEDTOSTART***************************Description:Thedependenciesofsomeofthebeansintheapplicationcontextformacycle报错原因:两个类相互引用对方,导致Spring在初始化b......
  • Tomcat处理http请求之源码分析
    本文将从请求获取与包装处理、请求传递给Container、Container处理请求流程,这3部分来讲述一次http穿梭之旅。1请求包装处理tomcat组件Connector在启动的时候会监听端口。以JIoEndpoint为例,在其Acceptor类中:protectedclassAcceptorextendsAbstractEndpoint.Acceptor{......
  • Java并发编程之ConcurrentLinkedQueue详解
    简介在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循......
  • 1万多公务员考试基础知识题库ACCESS数据库
    《公务员考试基础知识题库ACCESS数据库》搜集了大量公务员考试试题,包括公共基础知识试题、行政职业能力试题、法律基础知识试题、公安基础知识试题等。分类记录统计情况为:法律基础知识试题(共1359条)、公安基础知识试题(共1709条)、公共基础知识试题(共2905条)、行政职业能力试题(共661......
  • 自来水厂泵站PLC控制系统如何实现远程监控智慧运维
    随着自动化与物联网技术的飞速发展,诸多行业在无人化、智能化、数字化的要求越来越高。水务行业中无论是污水处理、泵站、消毒加药、供排水管网、水质监测等方面都能实现自动化控制,借助PLC数据采集实现远程监控智慧运维,具有广大的应用场景和实用价值。自来水厂的泵站不可避免的使用......
  • opencv 无法使用 dll 动态链接库 UnsatisfiedLinkError java.library.path Can‘t fin
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME)使用如上方法加载本地dll文件。 一般会出现两种错误:1、UnsatisfiedLinkErrorjava.library.path  2、UnsatisfiedLinkError Can'tfinddependentlibraries 第一种错误为没有加载到指定的dll文件,该配置可以百度搜索java.li......
  • CIO视角|平台工程带来的优势与机遇
    在当今高速发展的技术环境中,企业越来越依赖技术作为创新和竞争优势的战略驱动力。首席信息官(CIO)在企业中负责监督信息和计算机技术的管理和实施,以交付预期的业务成果。在技术是业务核心的公司中,CIO这一职位对于推动战略、技术和管理计划以实现业务增长至关重要。 在现有的解决......
  • 2万多条好词好句大全ACCESS数据库
    语录句子类的数据库也收集了有几个,比如:中英文语录名句对照ACCESS数据库、3千多条感悟型必学小段子ACCESS数据库、等具体可查看“微博段子”和“诗词语录”博客分类,而今天《2万多条好词好句大全ACCESS数据库》这个数据库有两个可取之处,一是结构,二是2万多条句子数。1.分类表2.标......