LINQ查询八大基本子句
- from子句
LINQ查询表达式必须包含from子句,且以from开头。如果该查询表达式还包含子查询,那么子查询表达式也必须以from子句开头。
注意:from子句指定的数据源的类型必须为IEnumerable、IEnumerable<T>或前两者的派生类型。
- where子句
where子句指定筛选元素的逻辑条件,一般由逻辑运算符(如逻辑“与”,逻辑“或”)组成,一个查询表达式可以不包含where子句,也可以包含一个或多个where子句。在where子句中可以使用&&和||运算符来连接where子句中的多个布尔条件表达式。但是where子句不能作为查询表达式的第一个和最后一个子句。
- select子句
select子句指定查询结果的类型和表现形式。LINQ查询表达式必须以select子句结束或group子句结束,否则会给出错误提示。
- group子句
group子句对查询的结果进行分组,并返回元素类型为IGrouping<TKE,TElement>的对象序列。
注意:一般情况下,group子句不需要使用into子句。如果需要对group子句的结果中的每一个组进行操作,则需要使用into子句来表示结果的中的组。
- orderby子句
orderby子句可以对查询结果进行排序。排序方式可以为“升序”或“降序”,且排序的键可以为一个或多个。LINQ查询表达式对查询的结果的默认排序方式为“升序”。
- into子句
into子句可以创建一个临时标识符,使用该标识符可以存储group、join、select子句的结果。
- join子句
join子句可以设置两个数据源之间的关系。这两个数据源之间必须存在关联的属性或值。join有3种联接关系。
1> 内部联接:元素的连接关系必须同时满足被联接的两个数据源。
2> 分组联接:含有into子句的join子句。
3> 左外部联接:返回第一个集合中的每一个元素,不管第二个集合中是否具有相关元素。
- let子句
let子句可以创建一个新的范围变量,并且使用该变量保存表达式中的结果。let子句指定范围变量的值通过初始化操作进行赋值,范围变量的值一但被初始化,将不能再被改变。