概述:LINQ又稱為語言集成查詢,是一種類似於SQL的一種查詢語言。語言集成查詢讓開發人員可以使用.NET程式語言(如C#)去查詢數據源,主要數據源為記憶體中的集合對象、ADO.NET數據集、資料庫以及XML,開發人員不用去分門別類地學習眾多的查詢語法就可以輕鬆地查詢異構數據源。 三種表現形式:複合查 ...
概述:LINQ又稱為語言集成查詢,是一種類似於SQL的一種查詢語言。語言集成查詢讓開發人員可以使用.NET程式語言(如C#)去查詢數據源,主要數據源為記憶體中的集合對象、ADO.NET數據集、資料庫以及XML,開發人員不用去分門別類地學習眾多的查詢語法就可以輕鬆地查詢異構數據源。
三種表現形式:複合查詢、Lambda表達式以及混合查詢。
1、查詢集合數據方法依次為:
複合查詢:
var result=from n in dataList orderby n.TimeWritten descending select n; //可以將n看做是dataList,得到的結果是dataList裡面所有值按時間欄位的降序排列。
Lambda表達式查詢:
var result=dataList.Select(p=>new{p.ID,p.Name,p.TimeWritten}); //Lambda表達式由匿名方法演變而來。這段Code中p為參數,多個參數可用(p,m..)表示。"=>"為推出符號,後面為返回值。該事例的返回值為對象中指定的欄位。
混合查詢:
var result=from n in dataList select n.OrderByDescending(p => p.TimeWritten); //查詢集合所有數據按照時間欄位降序來排序。升序為OrderBy()。
2、刪除數據
List<NewSingle> dataList=new List<NewSingle>();
NewSingle single=dataList.Single(p=>p.ID==1);
dataList.DeleteOnSubmit(NewSingle);
dataList.SubmitChanges();
3、插入數據
NewSingle single=new NewSingle();
single.Name="Test1";
single.TimeWritten=this.DateTime.Now.ToString();
single.Subject="subject";
dataList.InsertOnSubmit(single);
dataList.SubmitChanges();
4、修改數據
NewSingle single=from n in dataList where n.ID == 3 select n;
single.Name="Test2";
single.TimeWritten="2011-3-17";
single.Subject="subject2";
dataList.SubmitChanges();
註:linq中不支持Convert轉換。
5、查詢綁定DropDownList
var data=from n in dataList select new { Name=n.Name,ID=n.ID};
DropDownList1.DataTextField="Name";
DropDownList1.DataValueField="ID";
DropDownList1.DataSource=data;
DropDownList1.DataBind();
6、綁定GridView
GridView1.DataSource=dataList.Select(p=>p);
GridView1.DataBind();
7、表聯接
var result=from a in mytest.stuInfo join b in mytest.stuMarks on a.stuNo equals b.stuNo (into c) select new {Name=a.stuname,b.writtenExam};
8、其他方法
DeleteAllOnSubmit<T>(object) 刪除T類型的對象
Where() 條件查詢返回bool
GroupBy() 分組
SubString(n,m) 從n開始截取m條數據
Skip(number)跳過指定數量的項 】常用於表格分頁
Take(number) 提取指定數量的項 】
TakeWhile() 根據指定條件提取
SkipWhile() 根據指定條件跳選項,從第一個不符合小件的項開始提取
ThenBy(s=>s.Name) 複合排序,出現在多欄位列表中,置於在OrderBy後面
Distinct() 過濾重覆數據
ToList() 轉換成List
Count() 數據總數
Max()/Min() 最大值/最小值
Average() 平均值
Sum() 總和
Range() 例:num=Enumerable.Range(1,10) 從1開始產生十個數據
Repeat(重覆值,重覆次數) 生成重覆項
傳送門:http://blog.163.com/lm_regina/blog/static/17419653620110287530239