系列课程视频地址:https://ke.qq.com/course/267924?flowToken=1006068
1、IEnumerable<T>对象
在LINQ中,数据源和查询结果实际上都是IEnumerable<T>和IQueryable<T>类型的对象,可以通过调用对象的方法或者属性等,对数据源进行查询并使用查询结果数据,本篇介绍如何通过对象查询方法使用LINQ。
实际上,在LINQ查询表达式中可以使用的查询功能很少,在实际开发,通过对查询结果或数据源进行方法调用,从而进行更多的查询操作。在Net类库中,IEnumerable<T>接口中提供了大量与查询相关的方法,这些方法实际上都是以扩展方法的形式定义,使用时和成员方法类似。
C#3.0扩展方法使你能够向现有类型“添加”方法(包括用户自定义的类型和对象),而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但是可以像扩展类型上的实例方法一样进行调用。对于用C#编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。
IEnumerable<T>接口常用成员表:
成员 |
功能 |
Max |
计算序列中所有元素的最大值,返回值有int、long、float、double、decimal类型,并且可以指定元素到数值的映射方法 |
All |
检查是否序列中所有元素都满足条件,可以指定条件判断方法。如果所有元素都满足条件返回True,否则返回False |
Any |
检查序列中是否有任何一个元素满足条件,可以指定条件的判断方法。如果有一个以上(含一个)元素满足条件返回True,否则返回False |
Contains |
检查数据系列中是否包含特定的元素,可以指定相等比较方法 |
First |
返回序列中满足指定条件的第一个元素,可以指定条件判断方法 |
Single |
返回序列中满足指定条件的唯一元素。如果不止一个元素满足条件会引发一场,可以指定条件判断方法 |
Reverse |
反转序列中元素的顺序 |
Distinct |
返回序列中不重复的元素的集合,可以指定相等比较方法 |
Concat |
连接两个序列,直接首尾相连。返回结果可能存在重复数据 |
Union |
获取两个元素集合的并集,可以指定相等比较方法 |
Where |
根据制定条件对集合中元素进行筛选,返回满足条件的元素集合 |
Skip |
跳过序列中指定数量的元素,然后返回剩余的元素 |