Linq查询
a. 查询语法 Query Syntax
声明形式。利用查询表达式。
查询表达式:from…select子句,group子句,where子句,join子句,orderby子句等。
· join 子句
用一个查询搜索两个列表中的相关数据,用键字段把结果链接起来。
from c in Table1
join o in Table2 on c.ID equals o.ID
· group 子句
分组键用 key 区分,返回结果 res 是关于 key 的可枚举类型(分组),每个组也是可枚举类型。
b. 方法语法 Method Ayntax
命令形式。利用标准查询运算符。特殊情况需要传送函数或方法,以委托的形式。注意,方法调用顺序并不固定,因为Linq方法调用返回的类型都实现了 IEnumerable<T> 接口,但是应根据查询特性,合理安排调用顺序。
System.Linq.Enumerable类声明了标准查询运算符的方法,是扩展了泛型 IEnumerable<T> 的 扩展方法:公共静态方法,参数列表以 this 开始!
· 直接语法调用:Enumerable.Function(可枚举类型实例);
· 扩展语法调用:可枚举类型实例.Function();或 可枚举类型实例.Function(Lambda表达式);
聚合运算符:查询大型数据集,分析查询结果。
Count()、Max()、Min()、Average()、Sum()
投影 Projection:在查询中创建新的对象。
a. 投影查询的查询语法
在select子句中利用 new{…} 创建新对象,不能采用 select + 字段列表 的形式。
b. 投影查询的方法语法
调用Linq的 Select(Lambda表达式) 方法。
多级排序
a. 查询语法
orderby + 字段列表。
b. 多级排序的方法语法
OrderBy().ThenBy()/ThenByDescending()方法。
组合查询 group
把数据分解为组,允许按组来排序、计算聚合值以及进行比较。分组产生的结果集实现了 Linq接口 IEnumerable<IGrouping>,它支持 key 属性,所以组合查询中的数据通过一个键(Key)字段来组合,每个组中的所以数据共享这个字段值。
<-!- 几种常用方法 -!->
. 分区运算符
- Take():从查询结果中提取前n个结果;
- Skip():与Take()相反,跳过前n个结果,返回剩余的结果;
. 条件查询运算符
- First():返回结果集中第一个匹配给定条件的元素;
- FirstOrDefault():查询条件不满足,返回默认元素,而不必添加错误处理代码;
标准的集(合)运算符 set operator
- Intersect():交集,QryRes1.Intersect(QryRes2);
- Except():差集,QryRes1.Except(QryRes2);
- Union():并集,QryRes1.Union(QryRes2);
a. 查询语法 Query Syntax
声明形式。利用查询表达式。
查询表达式:from…select子句,group子句,where子句,join子句,orderby子句等。
· join 子句
用一个查询搜索两个列表中的相关数据,用键字段把结果链接起来。
from c in Table1
join o in Table2 on c.ID equals o.ID
· group 子句
分组键用 key 区分,返回结果 res 是关于 key 的可枚举类型(分组),每个组也是可枚举类型。
b. 方法语法 Method Ayntax
命令形式。利用标准查询运算符。特殊情况需要传送函数或方法,以委托的形式。注意,方法调用顺序并不固定,因为Linq方法调用返回的类型都实现了 IEnumerable<T> 接口,但是应根据查询特性,合理安排调用顺序。
System.Linq.Enumerable类声明了标准查询运算符的方法,是扩展了泛型 IEnumerable<T> 的 扩展方法:公共静态方法,参数列表以 this 开始!
· 直接语法调用:Enumerable.Function(可枚举类型实例);
· 扩展语法调用:可枚举类型实例.Function();或 可枚举类型实例.Function(Lambda表达式);
聚合运算符:查询大型数据集,分析查询结果。
Count()、Max()、Min()、Average()、Sum()
投影 Projection:在查询中创建新的对象。
a. 投影查询的查询语法
在select子句中利用 new{…} 创建新对象,不能采用 select + 字段列表 的形式。
b. 投影查询的方法语法
调用Linq的 Select(Lambda表达式) 方法。
多级排序
a. 查询语法
orderby + 字段列表。
b. 多级排序的方法语法
OrderBy().ThenBy()/ThenByDescending()方法。
组合查询 group
把数据分解为组,允许按组来排序、计算聚合值以及进行比较。分组产生的结果集实现了 Linq接口 IEnumerable<IGrouping>,它支持 key 属性,所以组合查询中的数据通过一个键(Key)字段来组合,每个组中的所以数据共享这个字段值。
<-!- 几种常用方法 -!->
. 分区运算符
- Take():从查询结果中提取前n个结果;
- Skip():与Take()相反,跳过前n个结果,返回剩余的结果;
. 条件查询运算符
- First():返回结果集中第一个匹配给定条件的元素;
- FirstOrDefault():查询条件不满足,返回默认元素,而不必添加错误处理代码;
标准的集(合)运算符 set operator
- Intersect():交集,QryRes1.Intersect(QryRes2);
- Except():差集,QryRes1.Except(QryRes2);
- Union():并集,QryRes1.Union(QryRes2);