語言整合查詢(英語:Language Integrated Query,縮寫:LINQ)音”link”
網路上已經有很多LINQ的詳細節紹,例如 .NET3.5 之後才有、基於ADO.NET之上所開發的架構... 我這邊就不重覆贅述,直接進入實戰環節。
直接介紹基本運用
List<int> list = new List<int>();
list.Add(5);
list.Add(4);
list.Add(3);
list.Add(2);
list.Add(2);
list.Add(1);
//從list中找出 1 or 2的值,有符合的都會列出來
var list_where = list.Where(x => x == 1 || x == 2);
//從list中找出 2 (第一個符合的就好,因此只會返回一個值
var list_fod = list.FirstOrDefault(x => x == 2);
//從list中是否有 2 這個值,有則回傳true;反之回傳false
var list_any = list.Any(x => x == 2);
//由小到大排序list
var list_ord = list.OrderBy(x => x);
//找最大值
var list_max = list.Max(x => x);
//找最小值
var list_min = list.Min(x => x);
//計算總和
var list_sum = list.Sum(x => x );
//計算平均
var list_avg = list.Average(x => x);
//LINQ還可以用.的方式 串接查詢
//找出 1 or 2 的值之後,再算平均
var lis2 = list.Where(x => x == 1 || x == 2).Average(x => x);
//Method syntax 語法
//找出%2==0的數列,再排序列出 (可以發現 x或n 都可以隨意使用,就跟for迴圈用 i 是一樣的)
var listQuery1 = list.Where(n => n%2 ==0).OrderBy(n => n);
//LINQ還有 Query syntax 語法,結果跟上面是一樣的
var listQuery2 = from n in list
where n % 2 == 0
orderby n
select n;
最後特別指出 LINQ有兩種寫法,希望剛開始接觸的人不要被嚇到了 (我就是那個被嚇到的人XDD