LINQ是C#針對(duì)數(shù)據(jù)集的一種查詢方式。
例如,此時(shí)存在一個(gè)數(shù)組
string[] milks = { "8.蒙牛a", "5.伊利a", "2.小洋人", "4.純享a" };
我想查詢?cè)摂?shù)組中以"a"結(jié)尾并按其本身排序時(shí)。
var items = from s in milks//查詢?cè)摂?shù)組
where s.EndsWith("a") //哪些以“a”結(jié)尾
orderby s//本身排序
?select s;//查詢
結(jié)果如下:

上述方法使用于數(shù)組、列表。
若此時(shí)數(shù)據(jù)源為DataTable。
//構(gòu)造測(cè)試數(shù)據(jù)
DataTable milks_dt = new DataTable;?
//構(gòu)造列?
milks_dt.Columns.Add("Id");
milks_dt.Columns.Add("Milk");?
//添加行x4
object[] row = new object[milks_dt.Columns.Count];
for(int i = 0; i < milks.Length; i++)
{
? ? row[0] = milks[i].Split('.')[0];
????row[1] = milks[i];
? ? milks_dt.Rows.Add(row);
}
//此時(shí)轉(zhuǎn)換
var milksItem = milks_dt.AsEnumerable();
//AsEnumerable - 返回一個(gè)System.Collections.Generic.IEnumerable`1對(duì)象,其中泛型參數(shù)T為System.Data.DataRow。 該對(duì)象可以在LINQ表達(dá)式中使用或方法查詢。
var items = from x in milkItems where x.Field<string>("Name").EndsWith("a") orderby x.Field<string>("Id") select x;
執(zhí)行結(jié)果如圖,同樣的結(jié)果只不過單個(gè)元素變成了DataRow:
