随笔分类 -  Linq专题

1
Linq(Language-Ingegrated Query),即语言集成查询。
摘要:在Linq中有一些这样的操作,根据集合计算某一单一值,比如集合的最大值,最小值,平均值等等。Linq中包含7种操作,这7种操作被称作聚合操作。 1、Count操作,计算序列中元素的个数,或者计算满足一定条件的元素的个数 2、Sum操作,计算序列中所有元素的值的总和 3、Max操作,计算序列中元素的最 阅读全文
posted @ 2016-04-22 16:28 IT少年 阅读(23325) 评论(1) 推荐(0)
摘要:在Linq中排序操作可以按照一个或多个关键字对序列进行排序。其中第一个排序关键字为主要关键字,第二个排序关键字为次要关键字。Linq排序操作共包含以下5个基本的操作。 1、OrderBy操作,根据排序关键字对序列进行升序排序 2、OrderByDescending操作,根据排序关键字对序列进行降序排 阅读全文
posted @ 2016-04-22 11:09 IT少年 阅读(11066) 评论(0) 推荐(1)
摘要:投影操作,乍一看不知道在说啥。那么什么是投影操作呢?其实就是Select操作,名字起的怪怪的。和Linq查询表达式中的select操作是一样的。它能够选择数据源中的元素,并指定元素的表现形式。投影操作包括以下2种操作: 1、Select操作,将数据源中的元素投影到新的序列中,并指定元素的类型和表现形 阅读全文
posted @ 2016-04-21 16:25 IT少年 阅读(2946) 评论(4) 推荐(0)
摘要:筛选操作where能够处理逻辑运算符组成的逻辑表达式。比如逻辑“与”,逻辑“或”,并从数据源中筛选数据,它和where子句的功能非常相似。Enumerable类的Where()原型如下: 1 public static IEnumerable<TSource> Where<TSource>(this 阅读全文
posted @ 2016-04-21 14:03 IT少年 阅读(6818) 评论(0) 推荐(0)
摘要:前面我们主要讲解的是Linq的查询表达式,Linq不但提供了一些基本的查询表达式,还提供了数十个查询操作。比如筛选操作、聚合操作、投影操作等等。通过这些查询操作可以更方便的对数据源进行处理。 Linq提供了数十个查询操作,大多数的操作都是针对实现了IQueryable<T>和IEnumerbale< 阅读全文
posted @ 2016-04-21 11:00 IT少年 阅读(437) 评论(0) 推荐(0)
摘要:前面我们总结Linq查询子句总共有8个,join子句是我们讲解的最后一个子句。join子句也是相对比较复杂的,所以最后来讲。join子句可以处理两个数据源之间的联系,当然这两个数据源之间必须存在相关联的值。 join子句可以实现3中连接关系 1.内部联接:元素的联接关系必须同时满足被连接的两个数据源 阅读全文
posted @ 2016-04-20 17:48 IT少年 阅读(4248) 评论(0) 推荐(0)
摘要:在Linq查询中Let子句可以创建一个新的范围变量,并使用该变量保存表达式的结果。 看下面的例子: 相当于用let 创建了一个整型变量number 来存放 Int32.Parse(u.UserName.Substring(u.UserName.Length - 2))表达式的结果。运行结果: 阅读全文
posted @ 2016-04-20 16:58 IT少年 阅读(5249) 评论(1) 推荐(0)
摘要:在Linq表达式中,into子句可以创建一个临时标识符,使用该标识符可以存储group、join或select子句的结果。 下面实例中我们用GroupOtherQuery方法来演示group子句对结果集进行分组。 一般group子句不需要into子句,除非对每一个分组进行操作。运行结果如下: 阅读全文
posted @ 2016-04-20 16:40 IT少年 阅读(2734) 评论(0) 推荐(0)
摘要:在Linq查询中,orderby 子句可以对查询结果集进行排序,可以升序也可以降序,排序关键字可以是多个。默认排序方式为升序。 下面的实例代码OrderQuery()中演示了orderby子句对查询的结果进行倒序排序的方法。 1、创建数据类型为List<UserBaseInfo>的数据源users。 阅读全文
posted @ 2016-04-20 16:25 IT少年 阅读(1614) 评论(0) 推荐(0)
摘要:在Linq查询语句中,group子句主要作用是对查询的结果集进行分组。并返回元素类型为IGrouping<TKey,TElement>的对象序列。 下面我们在代码实例中创建一个GroupQuery方法来演示group子句的用法。 1、创建数据类型为List<UserInfo>的数据源users。 2 阅读全文
posted @ 2016-04-20 15:59 IT少年 阅读(1292) 评论(0) 推荐(0)
摘要:在Linq中select子句用来指定查询结果的类型和表现形式。Linq查询要么以select子句结尾,要么以group子句结尾。 上面的select子句查询结果的类型为string类型的序列,序列值为users的username属性。下面代码演示了使用select子句创建一个序列,其中序列包含id和 阅读全文
posted @ 2016-04-20 15:30 IT少年 阅读(1853) 评论(0) 推荐(0)
摘要:在Linq中,where子句主要是来指定筛选元素的逻辑条件。linq查询中where子句不是必须的,可以不包括where子句,也可以包含多个where子句,where子句中可以包含一个或多个bool类型的查询条件。 上面的代码就是筛选出id大于3的用户。 阅读全文
posted @ 2016-04-20 15:08 IT少年 阅读(1527) 评论(0) 推荐(0)
摘要:Linq查询表达式包含8个常用的子句:from、where、select、join、into、orderby、group、let。我们来看看详细的说明。 from: 指定查询操作的数据源和范围变量 where: 筛选元素的逻辑条件,一般由逻辑运算符("与","或")组成 select: 指定查询结果 阅读全文
posted @ 2016-04-20 14:43 IT少年 阅读(10334) 评论(0) 推荐(0)
摘要:本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式。 下面在实例代码ReadyCollectionData()函数创建了准备的数据源: 1、创建集合类型的查询。 创建一个UserBaseInfo类: ReadyCollection 阅读全文
posted @ 2016-04-20 12:45 IT少年 阅读(1004) 评论(0) 推荐(1)
摘要:这一节我们讲的Lambda表达式跟匿名函数有关。Lambda表达式就是一个匿名函数,它可以包含表达式和语句,并且可以创建委托和表达式树。 Lambda表达式的组成: 输入参数、Lambda运算符(=>)、表达式或语句块构成。 基本形式: (input parameters)=>expression。 阅读全文
posted @ 2016-04-13 15:47 IT少年 阅读(575) 评论(0) 推荐(0)
摘要:匿名对象是c#3.0的一个新的机制,使用new关键字和一个对象的初始化器,就能创建一个匿名对象。顾名思义,创建的时候这个对象是一个匿名类型的对象,没有具体的类型。说到匿名对象,那么我们前面讲过的var关键字配上用场咯。因为不知道对象的具体类型,所以只能用var声明一个对象。 看看运行结果: 我们的编 阅读全文
posted @ 2016-04-13 14:05 IT少年 阅读(1363) 评论(0) 推荐(0)
摘要:集合初始化器用来初始化一个集合,和对象初始化器有点类似,都是用一对{}来初始化。 IList<int> numberIds = new List<int>() {1,2,3,4,5,6,7,8,9},()是可以省略的 IList<int> numberIds = new List<int>{1,2, 阅读全文
posted @ 2016-04-13 13:48 IT少年 阅读(307) 评论(0) 推荐(0)
摘要:在C#3.0之前,如果创建一个新的对象,往往需要调用类的构造函数来初始化该对象的值,在c#3.0提供了一个"对象初始化器"的机制,使得开发人员在创建新的对象时不通过调用类的构造函数,以声明的方式创建一个对象并初始化对象的值。看下面的例子: 我们看到在创建对象后,通过一对{}就可以给对象的public 阅读全文
posted @ 2016-04-13 13:40 IT少年 阅读(519) 评论(0) 推荐(0)
摘要:在c#1.0,c#2.0中声明一个变量时,总是要指定变量的类型,如果不指定变量类型编译器就会报错,产生编译错误。在c#3.0中我们可以不指定变量的具体类型,而使用一个新的关键字"var"来指定变量的类型,该变量的实际类型将在其初始化表达式中推到出来。下面实例代码中,我们用var声明了3个局部变量,并 阅读全文
posted @ 2016-04-13 13:26 IT少年 阅读(1323) 评论(0) 推荐(1)
摘要:什么是Linq? Linq(Language-Integrated Query),即语言集成查询。是微软的一项新技术,能够将查询功能直接引入.NET Framework3.5 所支持的编程语言(C#,Visual Basic.NET等)中。 Linq主要包括4个组件:Linq to Object、L 阅读全文
posted @ 2016-04-13 12:44 IT少年 阅读(712) 评论(0) 推荐(2)

1