並非所有lambda表達式可被轉換爲表達式樹。你 不能用一個語句塊(甚至只是一個 返回語句)將lambda轉換爲表達式樹 - >它必須是 的形式,它只計算一個表達式。
由於LINQ到對象語句不被轉換成表達式樹的對象,與LINQ到對象操作者使用拉姆達表達式可以包含語句塊
string[] count = { "one ", "two ", "three ", "four ", "five ", "six " };
IEnumerable<int> result = count.Select(item =>
{
Console.WriteLine(item);
return item.Length;
});
foreach (int i in result);
OUTPUT:
one two three four five six
我還沒有開始學習LINQ到SQL或LINQ到實體,但我認爲與上IQueryable<T>
操作LINQ語句中永遠只能包含一個表達式lambda表達式,由於restristion只有一個表達式可以轉換爲表達式樹?
謝謝
現在,你究竟會知道** C#深度中提到的東西**?哦,沒關係。 –
非常感謝你兩位 – AspOnMyNet
@Jon:我突然想到這個問題與這個問題有多相關,在http://stackoverflow.com/questions/8405423/do-at-compile-time-linq-to-objects-陳述也得到翻譯成表達* wink wink * – AspOnMyNet