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