前面我们主要讲解的是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. VS2013 修改TFS的本地映射路径

    在源代码管理器里面 找到你的本地工作区 然后点击编辑按钮 修改本地目录

  2. android openmax hardware decoder 整合记录

    欢迎访问我的blog:http://blog.thinkinside.me 关于android中openmax中hardware decoder的调用中,整合过程比较简单.主要是对OMXCodec的封 ...

  3. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  4. pip install使用豆瓣源

    这个是老问题了 pip install -i https://pypi.douban.com/simple/ selenium 类似的,npm和gem安装的时候可以使用淘宝源.

  5. C# HttpWebRequest 绝技 根据URL地址获取网页信息

    如果要使用中间的方法的话,可以访问我的帮助类完全免费开源:C# HttpHelper,帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取 1.第一招,根据URL地 ...

  6. ECShop商品详细页 实现尺码颜色关联显示库存数量

    效果如下: 要开模板文件 goods.dwt  把选择尺码跟颜色的代码替换成如下,(不同模板代码可能不一样,对照去替换) <!-- {foreach from=$spec.values item ...

  7. WP主题制作常用标签代码

    WordPress模板结构 style.css : CSS文件index.php : 主页模板archive.php : Archive/Category模板404.php : Not Found 错 ...

  8. SIP:用Riverbank的SIP创建C++库的Python模块

    我们发现PyQt做的Python版的PyQt是如此好用,如果想把自己的C++库包装成Python模块该如何实现呢? 这里介绍下用SIP包装C++库时值得参考的功能实现: 需要Python模块中实现C+ ...

  9. iOS 语言切换、本地化,国际化

    什么是本地化处理? 本地化处理就是我们的应用程序有可能发布到世界的很多国家去,因为每个国家应用的语言是不一样的,所以我们要把我们的应用程序的语言要进行本地化处理一下. 本地化处理需要处理那些文件? ( ...

  10. IBM HTTP Server Performance Tuning

    IBM HTTP Server Performance Tuninghttp://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.htm ...