查詢語法和方法語法
查詢語法和方法語法在語義上是相同的,但許多人發現查詢語法更簡單,更易於閱讀。假設我們需要從一組數字中檢索按升序排序的所有偶數項。
C#:
int[] numbers = { 0, 1, 2, 3, 4, 5, 6 };
// Query syntax:
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
// Method syntax:
IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);
VB.NET:
Dim numbers() As Integer = { 0, 1, 2, 3, 4, 5, 6 }
' Query syntax: '
Dim numQuery1 = From num In numbers
Where num Mod 2 = 0
Select num
Order By num
' Method syntax: '
Dim numQuery2 = numbers.where(Function(num) num Mod 2 = 0).OrderBy(Function(num) num)
請記住,某些查詢必須表示為方法呼叫。例如,必須使用方法呼叫來表示檢索與指定條件匹配的元素數的查詢。你還必須對查詢使用方法呼叫,以檢索源序列中具有最大值的元素。因此,使用方法語法使程式碼更加一致可能是一個優勢。但是,當然你可以在查詢語法呼叫後始終應用該方法:
C#:
int maxNum =
(from num in numbers
where num % 2 == 0
select num).Max();
VB.NET:
Dim maxNum =
(From num In numbers
Where num Mod 2 = 0
Select num).Max();