[C#] LINQ 的使用

語言整合查詢(英語: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