Method Syntax, 查询方法方式
主要利用 System.Linq.Enumerable 类中定义的扩展方法和 Lambda 表达式方式进行查询
上一章的例子都是以这种方式查询
Query Syntax, 查询语句方式
一种更接近 SQL 语法的查询方式
可读性更好

int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };

查询语句

var even = from number in numbers

where number % 2 == 0

orderby number descending

select number;

int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };

查询方法

var even = numbers

.Where(p => p % 2 == 0)

.OrderByDescending(p => p)

.Select(p => p);

查询语句与查询方法存在着紧密的关系

CLR本身并不理解查询语句,它只理解查询方法
编译器负责在编译时将查询语句翻译为查询方法
大部分查询方法都有对应的查询语句形式:如 Select() 对应 select 、 OrderBy() 对应 orderby
部分查询方法目前在C#中还没有对应的查询语句:如 Count()和Max() 这时只能采用以下替代方案
查询方法
查询语句 + 查询方法的混合方式;
一般情况下,建议使用可读性更好的查询语句