LINQ中的一些查询语句格式

LINQ的基本格式以下所示:
var <变量> = from <项目> in <数据源> where <表达式> orderby <表达式> 
 
LINQ  基本子句
from查询子句——基础
后面跟随着项目名称和数据源
示例代码以下:
var str = from lq in str select lq;
其中select语句指定了返回到集合变量中的元素是来自哪一个数据源的
 
from查询子句——嵌套查询
能够在from子句中嵌套另外一个from子句便可,示例代码以下所示。
var str = from lq in str from m in str2 select lq;
 
where条件子句
where子句指定了筛选的条件,这也就是说在where子句中的代码段必须返回布尔值才可以进行数据源的筛选
示例代码以下:
var str = from m in MyList where m.Length > 5 select m;
 
where子句查询
当须要多个where子句进行复合条件查询时,能够使用“&&”进行where子句的整合
示例代码以下:
var str = from m in myList where (m.Length > 6 && m.Contains("liu")) select m;
 
 
group分组子句
语句格式:var str = from p in PersonList group p by p.age
group子句将数据源中的数据进行分组,在遍历数据元素时,并不像前面的章节那样直接对元素进行遍历,由于group子句返回的是元素类型为IGrouping<TKey,TElement>的对象序列,必须在循环中嵌套一个对象的循环才可以查询相应的数据元素。
在使用group子句时,LINQ查询子句的末尾并无select子句,由于group子句会返回一个对象序列,经过循环遍历才可以在对象序列中寻找到相应的对象的元素,若是使用group子句进行分组操做,能够不使用select子句。
 
orderby排序子句
语句格式:var str = from p in PersonList orderby p.age select p;
orderby子句中使用descending关键字进行倒序排列
示例代码以下:
var str = from p in PersonList orderby p.age descending select p;
orderby子句一样可以进行多个条件排序,只须要将这些条件用“,”号分割便可
示例代码以下:
var str = from p in PersonList orderby p.age descending,p.name select p;
 
join链接子句
在LINQ中一样也能够使用join子句对有关系的数据源或数据对象进行查询,但首先这两个数据源必需要有必定的联系
var str = from p in PersonList join car in CarList on p.cid equals car.cid select p;
相关文章
相关标签/搜索