<p>
Method Syntax, 查询方法方式
主要利用 System.Linq.Enumerable 类中定义的扩展方法和 Lambda 表达式方式进行查询
上一章的例子都是以这种方式查询
Query Syntax, 查询语句方式
一种更接近 SQL 语法的查询方式
可读性更好</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };</p><p>查询语句</p><p> </p><p>var even = from number in numbers</p><p>where number % 2 == 0</p><p>orderby number descending</p><p>select number;</p><p>int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };</p><p> </p><p>查询方法</p><p>var even = numbers</p><p>.Where(p => p % 2 == 0)</p><p>.OrderByDescending(p => p)</p><p>.Select(p => p);</p><p>查询语句与查询方法存在着紧密的关系</p><p>CLR本身并不理解查询语句,它只理解查询方法
编译器负责在编译时将查询语句翻译为查询方法
大部分查询方法都有对应的查询语句形式:如 Select() 对应 select 、 OrderBy() 对应 orderby
部分查询方法目前在C#中还没有对应的查询语句:如 Count()和Max() 这时只能采用以下替代方案
查询方法
查询语句 + 查询方法的混合方式;
一般情况下,建议使用可读性更好的查询语句</p>