Linq专题之查询操作
前面我们主要讲解的是Linq的查询表达式,Linq不但提供了一些基本的查询表达式,还提供了数十个查询操作。比如筛选操作、聚合操作、投影操作等等。通过这些查询操作可以更方便的对数据源进行处理。
Linq提供了数十个查询操作,大多数的操作都是针对实现了IQueryable<T>和IEnumerbale<T>接口的序列。
| 序号 | 查询操作 | 对应的查询表达式 | 说明 |
| 1 | Aggregate | 自定义的聚合运算 | |
| 2 | All | 检测序列中的所有元素是否都满足指定条件 | |
| 3 | Any | 检测序列中是否存在满足指定条件的元素 | |
| 4 | Average | 计算序列中所有元素的平均值 | |
| 5 | Cast | 将序列中的元素类型转换成指定的类型 | |
| 6 | Contact | 将一个序列的元素全部追加到另一个序列,并构成一个新的序列 | |
| 7 | Contains | 检测序列中是否存在指定的元素 | |
| 8 | Count | 计算序列中的所有元素的个数或者计算满足一定条件的元素的个数 | |
| 9 | DefaultIfEmpty | 返回IEnumerable<T>类型的序列,如果序列为空,则返回只包含一个元素的序列(值为默认值或者指定的值) | |
| 10 | Distinct | 可将数据源中重复的元素去除返回一个新序列,还可以指定一个比较器来比较两个元素是否相等 | |
| 11 | Element | 返回集合中指定索引处的元素 | |
| 12 | ElementAtOrDefault | 返回集合中指定索引处的元素,如果索引超出范围则返回默认值 | |
| 13 | Empty | 返回IEnumerable<T>类型的空序列 | |
| 14 | EqualAll/SequenceEqual | 判断两个序列是否相等 | |
| 15 | Except | 计算两个集合的差集(由属于一个集合而不属于另一个集合的元素组成的集合) | |
| 16 | First | 返回集合的第一个元素或者返回满足条件的第一个元素 | |
| 17 | FirstOrDefault | 返回集合的第一个元素或者返回满足条件的第一个元素,如果不存在满足条件的元素则返回默认值。 | |
| 18 | GroupBy | Group子句 | 对序列中的元素进行分组 |
| 19 | GroupJoin | Join子句 |
产生分层数据结构,将第一个序列中的所有元素与第二个序列中的相关元素做匹配,在查询结果中,第一个集合中的元素都会出现,如果第一个序列中元素与第二个序列中的相关元素 匹配,则使用找到的元素否则为空 |
| 20 | Intersect | 可以计算两个集合的交集,即新集合中的元素既存在与第一个集合也存在与第二个集合 | |
| 21 | Join | Join子句 | 和sqlserver中inner join类似,要求元素的联接关系必须同时满足被联接的两个数据源 |
| 22 | Last | 返回集合的最后一个元素,或者返回满足指定条件的最后一个元素 | |
| 23 | LastOrDefault | 返回集合的最后一个元素,或者返回满足指定条件的最后一个元素,如果不存在该元素,返回默认值 | |
| 24 | LongCount | 计算集合中元素的数量,或者满足指定条件的元素的数量,一般用来计算大型集合的元素数量 | |
| 25 | Max | 计算序列中元素的最大值 | |
| 26 | Min | 计算序列中元素的最小值 | |
| 27 | OfType | 从序列中筛选出指定类型的元素,并构建为一个序列 | |
| 28 | OrderBy | order by 子句 | 根据关键字对序列中的元素进行升序排序 |
| 29 | OrderByDescending | order by 子句 | 根据关键字对序列中的元素进行降序排序 |
| 30 | Range | 返回指定范围的数字序列 | |
| 31 | Repeat | 返回IEnum<T>类型的包含重复值的序列 | |
| 32 | Reverse | 将序列中的元素进行反转 | |
| 33 | Select | Select子句 | 将数据源中的元素投射到新的序列中并指定元素的类型和表现形式, |
| 34 | SelectMany | 多个from子句 | 将数据源中的元素投射到新的序列中并指定元素的类型和表现形式,但是SelectMany可以将一个函数应用到多个序列之上,并将结果合并为一个序列 |
| 35 | Single | 返回集合中唯一一个元素或者返回满足指定条件的唯一一个元素 | |
| 36 | SingleOrDefault | 返回集合中唯一一个元素或者返回满足指定条件的唯一一个元素,如果不存在该元素则返回默认值 | |
| 37 | Skip | 跳过序列中指定数量的元素,然后返回由剩余元素组成的序列 | |
| 38 | SkipWhile | 跳过序列中指定数量的元素,然后返回由剩余元素组成的序列 | |
| 39 | Sum | 计算序列中所有元素的和 | |
| 40 | Take | 从数据源的开头获取指定数量的元素,然后返回这些元素组成的新序列 | |
| 41 | TakeWhile | 从数据源的开头获取指定数量的元素,然后返回这些元素组成的新序列 | |
| 42 | ThenBy | order by 子句 | 根据次要关键字对序列进行升序排列 |
| 43 | ThenByDescending | order by 子句 | 根据次要关键字对序列进行升序排列 |
| 44 | ToArray | 将IEnumerable<T>类型的序列转换为T[]类型的数组 | |
| 45 | ToDictionary | 将IEnumerable<T>类型的序列转换为Dictionary<TKey,Tvalue>类型的数组 | |
| 46 | ToList | 将IEnumerable<T>类型的序列转换为List<T>类型的数组 | |
| 47 | ToLookUp | 按照键值将序列中的元素放入一对多的字典序列LookUp<TKey,TValue> | |
| 48 | Union | 计算两个集合的并集,由属于第一个集合或者属于第二个集合的元素组成的序列 | |
| 49 | Where | Where 子句 | 处理逻辑运算符,从数据源中筛选数据 |
Linq专题之查询操作的更多相关文章
- LINQ 学习路程 -- 查询操作 Expression Tree
表达式树就像是树形的数据结构,表达式树中的每一个节点都是表达式, 表达式树可以表示一个数学公式如:x<y.x.<.y都是一个表达式,并构成树形的数据结构 表达式树使lambda表达式的结构 ...
- LINQ 学习路程 -- 查询操作 OrderBy & OrderByDescending
Sorting Operator Description OrderBy 通过给定的字段进行升序 降序 排序 OrderByDescending 通过给定字段进行降序排序,仅在方法查询中使用 Then ...
- LINQ 学习路程 -- 查询操作 Deferred Execution of LINQ Query 延迟执行
延迟执行是指一个表达式的值延迟获取,知道它的值真正用到. 当你用foreach循环时,表达式才真正的执行. 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现 ...
- LINQ 学习路程 -- 查询操作 Join
Join操作是将两个集合联合 Joining Operators Usage Join 将两个序列连接并返回结果集 GroupJoin 根据key将两个序列连接返回,像是SQL中的Left Join ...
- LINQ 学习路程 -- 查询操作 where
1.where Filtering Operators Description Where Returns values from the collection based on a predicat ...
- LINQ 学习路程 -- 查询操作 GroupBy ToLookUp
Grouping Operators Description GroupBy GroupBy操作返回根据一些键值进行分组,每组代表IGrouping<TKey,TElement>对象 To ...
- LINQ 学习路程 -- 查询操作 let into关键字
IList<Student> studentList = new List<Student>() { , StudentName = } , , StudentName = } ...
- LINQ 学习路程 -- 查询操作 Aggregate
聚合操作执行数学的运算,如平均数.合计.总数.最大值.最小值 Method Description Aggregate 在集合上执行自定义聚集操作 Average 求平均数 Count 求集合的总数 ...
- LINQ 学习路程 -- 查询操作 Select, SelectMany
IList<Student> studentList = new List<Student>() { , StudentName = "John" }, , ...
随机推荐
- 巧用css border
上下左右边框交界处呈现平滑的斜线.利用这个特点,通过设置不同的上下左右边框宽度或颜色,可以得到小三角.梯形等. 调整宽度大小可以调节三角形形状. 实现三角形 示例1: #test1{ height:2 ...
- log4j总结
log4j介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Sysl ...
- ecshop退出登录会清空购物车的bug优化,最完美解决方法
ecshop退出登陆后,会清空购物车,大家都应该知道有这样的勉强算bug的问题. 网上类似的教程相当多,但都有问题,说句不好听的,算是引新手入歧途! 总结网上方法如下: 1.修改init.php,把s ...
- VS2010安装失败解决办法
1. 运行regedit打开注册表: 2. 找到HKEY_LOCAL_MACHINE\SOFWARE\ Microsoft\ Internet Explorer\ MAIN: 3. MAIN子键的权限 ...
- android studio 中查找代码中的硬编码
在Android Studio中同时按下Ctrl + Shift+ F 或者其他自定义的快捷键,打开全局搜索,在全局搜索中输入 ^((?!(\*|//)).)+[\u4e00-\u9fa5] 并打勾 ...
- Java中RSA非对称密钥加解密使用示例
一.简介: RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名.这个算法经受住了多年深入的密码分析,虽然密码分 ...
- js日期时间比较函数
转自:http://www.cnblogs.com/zxjyuan/archive/2010/09/07/1820708.html js日期比较(yyyy-mm-dd) function duibi( ...
- swift 方法
swift的类,结构体,枚举中都可以定义方法. 1:实例方法.类似于类成员方法 1.1实例方法是属于类,结构体,枚举的实例的方法.通过其实例访问. class CShow{ func testShow ...
- Win8.1 Metro应用无法联网,提示“无法加载此页面”解决方法!(看红色字体部分)
Windows 8 Metro Apps使用Proxifier的方法 By Shinichi_Wtn2012-07-05 20:28 在校园里,经常要使用代理上网的方式,Proxifier可以让不支持 ...
- MyBatis 入门
什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集.MyBatis ...