前面我们主要讲解的是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专题之查询操作的更多相关文章

  1. LINQ 学习路程 -- 查询操作 Expression Tree

    表达式树就像是树形的数据结构,表达式树中的每一个节点都是表达式, 表达式树可以表示一个数学公式如:x<y.x.<.y都是一个表达式,并构成树形的数据结构 表达式树使lambda表达式的结构 ...

  2. LINQ 学习路程 -- 查询操作 OrderBy & OrderByDescending

    Sorting Operator Description OrderBy 通过给定的字段进行升序 降序 排序 OrderByDescending 通过给定字段进行降序排序,仅在方法查询中使用 Then ...

  3. LINQ 学习路程 -- 查询操作 Deferred Execution of LINQ Query 延迟执行

    延迟执行是指一个表达式的值延迟获取,知道它的值真正用到. 当你用foreach循环时,表达式才真正的执行. 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现 ...

  4. LINQ 学习路程 -- 查询操作 Join

    Join操作是将两个集合联合 Joining Operators Usage Join 将两个序列连接并返回结果集 GroupJoin 根据key将两个序列连接返回,像是SQL中的Left Join ...

  5. LINQ 学习路程 -- 查询操作 where

    1.where Filtering Operators Description Where Returns values from the collection based on a predicat ...

  6. LINQ 学习路程 -- 查询操作 GroupBy ToLookUp

    Grouping Operators Description GroupBy GroupBy操作返回根据一些键值进行分组,每组代表IGrouping<TKey,TElement>对象 To ...

  7. LINQ 学习路程 -- 查询操作 let into关键字

    IList<Student> studentList = new List<Student>() { , StudentName = } , , StudentName = } ...

  8. LINQ 学习路程 -- 查询操作 Aggregate

    聚合操作执行数学的运算,如平均数.合计.总数.最大值.最小值 Method Description Aggregate 在集合上执行自定义聚集操作 Average 求平均数 Count 求集合的总数 ...

  9. LINQ 学习路程 -- 查询操作 Select, SelectMany

    IList<Student> studentList = new List<Student>() { , StudentName = "John" }, , ...

随机推荐

  1. .net core 1.0 实现负载多服务器单点登录

    前言 .net core 出来有一时间了,这段时间也一直在做技术准备,目前想做一个单点登录(SSO)系统,在这之前用.net时我用习惯了machineKey ,也顺手在.net core 中尝试了一上 ...

  2. oracle 判断中文函数

    create or replace function func_chinese(  p_str     in varchar2,     -- 输入的字符串  p_code    in varchar ...

  3. ibatis返回map列表

    ibatis返回map列表 1. resultClass="java.util.HashMap"   <select id="queryCustmerCarNoBy ...

  4. 关于VS2010出现“此方法显式使用的 CAS 策略已被 .NET Framework 弃用... ...请使用 NetFx40_LegacySecurityPolicy 配置开关”解决办法

    有时候VS会出现“此方法显式使用的 CAS 策略已被 .NET Framework 弃用.若要出于兼容性原因而启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置 ...

  5. Oracle 12c

    Common User vs. Local User – 12c Edition http://dbasolved.com/2013/06/29/common-user-vs-local-user-1 ...

  6. LeetCode: Convert Sorted List to Binary Search Tree 解题报告

    Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in as ...

  7. CYQ学习教程

    http://www.cyqdata.com/cyqdata/article-detail-413

  8. jarsigner 签名android apk

    1.查看签名: jarsigner -verify app_signed.apk 查看是否签名,如果已经签名会打印 "jar verified". jarsigner -verif ...

  9. C# 向Http服务器送出 POST 请求

    //向Http服务器送出 POST 请求 public string m_PostSubmit(string strUrl,string strParam) { string strResult = ...

  10. SQL查询 - 表连接

    一.连接查询简介 连接查询中用来连接连个表的条件称为连接条件或连接谓词.其形式为: [<表1>].<列名1><连接运算符>[<表2>].<列2&g ...