八大查询子句分别是:from、select、group、where、orderby、join和let
from 子句指定查询操作的数据源和范围变量。其中,数据源不但包括查询本身的数据源,而且还包括子查询的数据源。范围变量一般用来表示源序列中的每一个元素。
例: 从数组中查询小于3的元素。 v为范围变量,values为数据源。
where子句
指定筛选元素逻辑条件,一般有逻辑运算符组成,一个查询表达式可以不包含where字句,也可以包含一个或多个where字句。在where字句中可以使用&&和||运算符来连接where字句中的多个布尔表达式。
如果where字句在查询表达式中出现,那么where字句不能作为查询表达式的第一个字句或最后一个。
例:查询id值小于3,并且用户名包含“0”的用户名称.
select子句
指定查询结果的类型的表现形式。
在LINQ查询表达式必须以select子句结束或group子句结束,否则给出错误提示。
例:查询id值小于3的用户。并使用select子句创建一个类型为userInfo的序列
group子句
对查询结果进行分组,并返回元素类型为IGrouping<TKey,TELement>的对象序列
例:根据id奇偶进行分组查询
orderby子句
对查询结果进行排序。排序方式可以为升序或降序,且排序的键可以为一个过多个
例:将id值小于5的用户进行排序
into 子句
可以创建一个临时标识符,使用该标识符可以储存groupjoin、或select子句的结果
例:
join子句
可以实现三中联接查询
内部联接,元素连接关系必须满足被联接的两个数据源。
分组联接,含有into子句的join子句
左外部联接。
例:内部联接
例:分组联接
例:左外部联接
let子句
可以创建一个新的范围变量,并且使用该变量保存表达式中的结果。
let子句指定的范围变量的值只能通过初始化操作进行赋值,范围变量的值一旦被初始化,将不能再被改变。
例: