linq即語言整合查詢,是.net framework 3.5中新增的功能。其功能類似於資料庫中的sql語句(實際上linq就是針對.net framework的sql):提供標準的、易於學習的查詢和更新資料模式。
從from開始:
用過sql的朋友都知道,最簡單的sql語句select record from tablename:獲取表中的所有記錄,那麼對應於linq,其語法如下:
from record in tablename select record。
明顯的差異是將from語句放到了句首,此種語法方式只是為了適應visual studio中智慧型提示(試想如果將from子句放在後面,先輸入select語句,此時select的物件型別尚不確定,智慧型提示無法做出相應提示)
sql語句是從資料庫表中查詢出記錄,而linq適應的資料來源更廣,包括sql server資料庫、xml文件、ado.net資料集以及所有支援ienumerable及ienumerable介面的任意物件集合。
linq只是一種語法:
linq查詢語句實際上和我們常用的foreach語句相似:中間語言(il)中並沒有對應的foreach語句,編譯器最終會將foreach語句轉換為一些列的語句塊,例如:
string strs = new string ;
foreach(string s in strs)
轉換為:
string strs = new string;
while(e.movenext())
在.net framework 3.5中為ienumerable介面加入了大量的擴充套件方法,這些方法為linq提供了實現基礎(就像ienumerable中getenumerator方法為foreach提供實現基礎一樣)
例如,ienumerable中的where擴充套件方法,它和linq中的where子句對應,用於篩選資料。
條件篩選 lambda表示式:lambda運算子=>,運算子左側是引數(如果有),右側是表示式或者語句塊:
if (academeid > 0)
if (gradeid > 0)
if (classid > 0)
if (!string.isnullorempty(studentdetail))
這段**是我前不久上課學的,前三句表示下拉框,最後一句表示文字框。
有寫的不好的地方還望大家指出,謝謝!
LINQ和Lambda表示式
前段時間接觸了一種新的表示式,但是不知道這個是什麼意思,所以就先站在巨人的肩膀用了,現在聽師哥說這種寫法是 lambda 表示式。我一直以為,這個 lambda 表示式和 linq 查詢有異曲同工之妙,可惜,這樣想就大錯特錯了。定義語言整合查詢 language integrated query 允...
關於LINQ 和lambda表示式
一linq 既可以實現過濾資料 和lambda一樣 也可以實現查詢其他型別資料的功能 linq表示式的from行可以巢狀 實現表多層關聯一層層向下找的目的 注意一對一還是一對多的對應關係 容易亂 別把上層過濾掉的內容又關聯回來了 過濾完要tolist 不然是iqueryable型別 var acti...
LINQ與Lambda表示式
是微軟提出的一項新技術 能將查詢功能直接引入到.net framwork所支援的程式語言中。查詢操作可以通過程式語言自身來傳達,而不用以字串形式嵌入到 中。主要包括linq to sql,linq to dataset,linq to objects和linq to xml4種技術。在c 後期版本中...