LINQ中IEnumerable
创始人
2024-05-05 22:10:23
0

IEnumerable接口主要功能是提供了大量与查询相关的方法,虽然这些方法实际上是以扩展方法的形式定义,但也不影响IEnumerable接口的功能性。

1.IEnumerable接口

IEnumerable泛型接口支持在制定数据集合上进行迭代操作。它定义了一组扩展方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索等操作。在LINQ中,数据源实际上是实现了接口IEnumerable的类,通过select子句返回的查询结果页是一个实现了IEnumerable的类。

在.NET类库中,IEnumerable接口提供了大量与查询相关的方法。这些方法实际上是以扩展方法的形式定义,但是由于它的作用类型也为IEnumerable接口,所以使用上和成员方法很类似。

IEnumerable接口主要成员

 成员

 功能

 Aggregate  对序列应用累加器函数,可以指定累加方法
 Sum

计算序列中所有元素的和,返回值有int、long、float、double、decimal类型,并且可以指定元素到数值的映射方法

 Average

计算序列中所有元素的平均值,返回值有int、long、float、double、decimal类型,并且可以指定元素到数值的映射方法

 Max  计算序列中所有元素的最大值,返回值有int、long、float、double、decimal类型,并且可以指定元素到数值的映射方法
 Min  计算序列中所有元素的最小值,返回值有int、long、float、double、decimal类型,并且可以指定元素到数值的映射方法
 All  检查是否序列中所有元素都满足条件,可以指定条件判断方法。如果所有元素都满足条件返回True,否则返回False
 Any  检查序列中是否有任何一个元素满足条件,可以指定条件的判断方法。如果有一个以上(含一个)元素满足条件返回True,否则返回False
 Contains  检查数据系列中是否包含特定的元素,可以指定相等比较方法
 Count  返回序列中满足指定条件的元素的数量,可以指定条件判断方法
 LongCount  返回序列中满足指定条件的元素的长数量,可以指定条件判断方法
 Cast  将IEnumerable中的元素转换为指定的数据类型
 DefaultIfEmpty  返回序列中指定位置的元素。如果序列为空,则返回默认的元素值
 ElementAt  返回序列中指定索引处的元素
 ElementAtOrDefault  返回序列中指定索引处的元素。如果序列为空,则返回默认值
 First  返回序列中满足指定条件的第一个元素,可以指定条件判断方法
 FirstOrDefault  返回序列中满足指定条件的第一个元素。如果不存在则返回默认值,也可以指定条件判断方法
 Last  返回序列中满足指定条件的最后一个元素,可以指定条件判断方法
 LastOrDefault  返回序列中满足指定条件的最后一个元素。如果不存在则返回默认值,也可以指定条件判断方法
 Single  返回序列中满足指定条件的唯一元素。如果不止一个元素满足条件会引发一场,可以指定条件判断方法
 SingleOrDefault 返回序列中满足指定条件的唯一元素。如果不存在则返回默认值,如果不止一个元素满足条件会引发一场,可以指定条件判断方法 
Reverse 反转序列中元素的顺序 
 Distinct 返回序列中不重复的元素的集合,可以指定相等比较方法 
 Concat 连接两个序列,直接首尾相连。返回结果可能存在重复数据 
 Except 获取两个元素集合的差集,可以指定相等比较方法 
 Intersect  获取两个元素集合的交集,可以指定相等比较方法
 Union  获取两个元素集合的并集,可以指定相等比较方法

SequenceEqual

比较两个序列是否相等,可以指定相等比较方法 
 Where 根据制定条件对集合中元素进行筛选,返回满足条件的元素集合 
 Skip 跳过序列中指定数量的元素,然后返回剩余的元素 
 SkipWhile 跳过序列中满足指定条件的元素,然后返回剩余的元素,可以指定条件判断方法 
 Take 从序列的开头返回指定数量的连续元素 
 TakeWhile 返回从序列开始的满足指定条件的连续元素,可以指定条件判断方法 
 ToArray 从IEnumerable创建一个数组 
 ToList 从IEnumerable创建一个List 

从上表可以看出,IEnumerable提供的方法包括数值运算(Sum、Min、Max、Average)、元素数量(Count、LongCount)、取值(First、Last、ElementAt等)、提取子集(Skip、SkipWhile、Take、TakeWhile、)集合操作(Reverse、Concat、Distinct、Except、Intersect、Union、SequenceEqual等)。这些方法提供了LINQ所需要的所有操作。

注意:

IEnuerable继承自IEnumerable接口,所以它也包含IEnumerable接口的所有方法,所以还包括Select()、SelectMany()、Repeat()等方法。

另外,IQuery接口从IEnumerable派生而来,通常也可以作为数据源使用,它的使用和IEnumerable类似。

本文来自Kevin博客园博文《IEnumerable接口主要成员

【编辑推荐】

  1. LINQ和ADO.NET技术概述
  2. LINQ查询的目的与实现手段
  3. LINQ基础概念总结
  4. LINQ查询表达式功能详解
  5. ADO.NET中的多数据表操作读取

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...