LINQ為我們提供了兩種查詢語法,分別是查詢表達式和查詢方法語法。這篇文章分為以下幾個方面進行總結。
1,一個包含兩種查詢語法的簡單示例
2,查詢表達式的結構
3,查詢方法相關的運算符
一個LINQ查詢既可以使用查詢表達式實現,也可以用查詢方法實現,還可以同時組合兩種查詢。下面是一個簡單的示例,代碼如下。
namespace LINQDemo3 { class Program { static void Main(string[] args) { int[] numbers = { 2, 5, 28, 31, 17, 16, 42 }; //查詢表達式 var query = from number in numbers where number < 20 select number; //查詢方法(一般用lambda表達式) var numsMethod = numbers.Where(p => p < 20); //兩種方式組合 var numsCount = (from number in numbers where number < 20 select number).Count(); foreach (var item in query) { Console.WriteLine("{0}",item); } foreach (var item in numsMethod) { Console.WriteLine("{0}",item); } Console.WriteLine(numsCount); Console.ReadKey(); } } }
查詢表達式通常以from開頭,以select結束,這跟SQL語句的順序不太一樣,C#這麼做的原因之一是讓VS智能感應能在我們輸入代碼時給我們更多選項。一個查詢表達式通常的結構如下圖。
注:此圖引用了‘滴答的雨’的http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html文章中的圖片。
查詢方法主要分為過濾,排序,分組,統計,轉換等幾類操作,用一張圖總結如下。
注:此圖引用自‘滴答的雨’的文章,http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html