随笔分类 - LINQ
摘要:Linq中的分区指的是在不重新排列元素的情况下,将输入序列划分为两部分,然后返回其中一个部分的操作。 一、Take操作符 Take(int n)表示将从序列的开头返回数量为n的连续元素,常用于分页。其定义如下: 该方法只接受一个整数,表示要返回的结果的数量。 看下面的例子: 结果: 二、TakeWh
阅读全文
摘要:限定操作符运算返回一个Boolean值,该值指示序列中是否有一些元素满足条件或者是否所有元素都满足条件。 一、All操作符 All方法用来确定是否序列中的所有元素都满足条件。看下面的例子: 结果: 二、Any操作符 先来看看Any的定义: 从定义中可以看出:Any有两个重载方法。Any方法的无参方式
阅读全文
摘要:这些转换操作符将集合转换成数组:IEnumerable、IList、IDictionary等。转换操作符是用来实现将输入对象的类型转变为序列的功能。名称以"As"开头的转换方法可更改源集合的静态类型但不枚举(延迟加载)此源集合。名称以"To"开头的方法可枚举(即时加载)源集合并将项放入相应的集合类型
阅读全文
摘要:串联是一个将两个集合连接在一起的过程。在Linq中,这个过程通过Concat操作符实现。Concat操作符用于连接两个集合,生成一个新的集合。来看看Concat操作符的定义: 从方法定义中可以看出:第二个参数为输入一个新的集合,与调用集合连接,生成并返回一个新的集合。 注意: 第一个集合和第二个集合
阅读全文
摘要:分组是根据一个特定的值将序列中的元素进行分组。LINQ只包含一个分组操作符:GroupBy。GroupBy操作符类似于T-SQL语言中的Group By语句。来看看GroupBy的方法定义: 从方法定义中可以看出:GroupBy的返回值类型是:IEnumerable<IGrouping<TKey,
阅读全文
摘要:linq中的连接操作符主要包括Join()和GroupJoin()两个。 一、Join()操作符 Join()操作符非常类似于T-SQL中的inner join,它将两个数据源进行连接,根据两个数据源中相等的值进行匹配。例如:可以将产品表和产品类别表进行连接,得到产品名称和与其对应的类型名称。下面看
阅读全文
摘要:C#3.0(.NET3.5)中引入了Lambda表达式和LINQ。Lambda表达式是使用一些特殊语法表示匿名方法的较短方法。 最基本的Lambda表达式语法如下: (参数列表)=>{方法体} 说明: 1、参数列表中的参数类型可以是明确类型或者推断类型。 2、如果是推断类型,则参数的数据类型将由编辑
阅读全文
摘要:LINQ查询时有两种语法可供选择:查询表达式语法(Query Expression)和方法语法(Fluent Syntax)。 一、查询表达式语法 查询表达式语法是一种更接近SQL语法的查询方式。 LINQ查询表达式语法如下: LINQ查询表达式 指定要查询的数据源以及范围变量,多个from子句则表
阅读全文
摘要:一、为什么要使用LINQ 要理解为什么使用LINQ,先来看下面一个例子。假设有一个整数类型的数组,找到里面的偶数并进行降序排序。 在C#2.0以前,如果要实现这样的功能,我们必须使用'foreach'或'for'循环来遍历数组,先找到偶数然后在降序排序,相关代码如下: 使用for循环很麻烦,而且不可
阅读全文
摘要:Linq中的排序操作符包括OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse,提供了升序或者降序排序。 一、OrderBy操作符 OrderBy操作符用于对输入序列中的元素进行排序,排序基于一个委托方法的返回值顺序。排序过程完成后,会返
阅读全文
摘要:where是限制操作符,它将过滤标准应用在序列上,按照提供的逻辑对序列中的数据进行过滤。 where操作符不启动查询的执行。当开始对序列进行遍历时才开始执行,此时过滤条件将被应用到查询中。 示例:
阅读全文
摘要:SelectMany操作符提供了将多个from子句组合起来的功能,相当于数据库中的多表连接查询,它将每个对象的结果合并成单个序列。 示例: student类: teacher类: Program类
阅读全文
摘要:一、什么是LINQ?它可以用来做什么 语言集成查询(Language Integrated Query,LINQ)是一系列标准查询操作符的集合,这些操作符几乎对每一种数据源的导航、过滤和执行操作都提供了底层的基本查询架构。 LINQ可查询的数据源包括XML(可使用LINQ TO XML)、关系数据(
阅读全文