一、什麼是linq?
linq即language integrated query(語言整合查詢),linq是整合到c#和visual basic.net這些語言中用於提供查詢資料能力的乙個新特性。
linq是一種用來進行資料訪問的程式設計模型,linq可以用相同的語法訪問不同的資料來源,比如xml、資料庫、登錄檔、事件日誌等。
二、linq包含哪些部分?
1、linq to sql元件:可以查詢關係型資料庫的資料,並可以提供其他操作,如檢索、插入、修改、刪除、排序、聚合、分割槽等。
2、linq to dataset元件:查詢dataset物件中的資料。
3、linq to object元件:可以查詢ienumerable或是ienumerable 集合物件,即能夠查詢任何可以列舉的集合,如陣列(array和arraylist)、泛型字典dictinary等,以及使用者自定義的集合,而不需要使用linq提供程式或api。
4、linq to xml元件:查詢和操作xml結構的資料。
5、linq to entities:是 entity framework 的一部分並且取代 linq to sql 作為在資料庫上使用 linq 的標準機制。entity framework 是行業領先的物件-關係對映(orm)系統。可以和多種資料庫一起使用,並支援各種靈活、複雜的資料模型。
三、linq的一些用法
1、簡單的linq查詢
static void main(string args)
int marks = ;//定義乙個陣列
var good = from m in marks//使用linq找到所有數值大於等於60的數字
where m >= 60
select m;
foreach (int mark in good)//迴圈每乙個結果
console.writeline(mark);//輸出結果
2、使用lambda表示式的linq查詢
static void main(string args)
int marks = ;
var good = marks.where(m => m >= 60);//使用lambda表示式查詢數值大於等於60的數字
foreach (int mark in good)//迴圈每乙個結果
console.writeline(mark);//輸出結果
3、使用linq查詢物件集合
class program
static void main(string args)
list students = new list//申明student物件的集合
new student,
new student,
new student,
new student
//接下來使用linq查詢所有年齡小於25歲的男性
var names = from s in students
where s.*** == true&&s.getage()<25 //呼叫物件的方法
select s.name;
foreach (string name in names)//迴圈輸出結果
console.writeline(name);
public class student //定義student類
//以下是定義類中屬性
public string name
public int studentid
public bool ***
public datetime birthday
//以下是定義類中的方法
public int getage()
return datetime.now.year - birthday.year;
四、linq有什麼好處?
1、容易上手,學習成本低
2、可以很大程度上減少**量。
3、更快開發錯誤更少的應用程式。
4、可以很容易的合併資料來源。
5、讓新開發者開發效率更高。
6、任何物件或資料來源都可以定製實現linq介面卡,為資料互動帶來真正方便。
閱讀原文
Linq用法筆記
一 什麼是linq?linq即language integrated query 語言整合查詢 linq是整合到c 和visual basic.net這些語言中用於提供查詢資料能力的乙個新特性。linq是一種用來進行資料訪問的程式設計模型,linq可以用相同的語法訪問不同的資料來源,比如xml 資料...
LINQ 常見用法
以下資料來源都假設為data 1.獲取某列的不重複資料 listids data.select t t.id distinct tolist 2.對list進行in查詢 listids new list listdata data.where tb ids.contains tb.id select...
LINQ的基本用法
1.var q from c in db.customers select c.contactname 這個語句只是乙個宣告或者乙個描述,並沒有真正把資料取出來,只有當你需要該資料的時候,它才會執行這個語句,這就是延遲載入 deferredloading 如果,在宣告的時候就返回的結果集是物件的集合...