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;