Từ C# trong chiều sâu:Chuyển đổi biểu thức lambda vào một cây biểu
Không phải tất cả các biểu thức lambda có thể được chuyển đổi sang cây biểu thức. Bạn không thể chuyển đổi lambda bằng một khối câu lệnh (thậm chí chỉ một câu lệnh trả về là ) thành một cây xuất hiện -> nó phải ở dạng chỉ đánh giá một biểu thức.
Kể từ khi tuyên bố LINQ-to-Object không được chuyển đổi thành các đối tượng cây biểu thức, các từ ngữ lambda sử dụng với các nhà khai thác LINQ-to-Object có thể chứa một khối lệnh
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
tôi vẫn chưa bắt đầu học LINQ-to-SQL hoặc LINQ-To-Đối tượng, nhưng tôi giả định biểu thức lambda sử dụng với lệnh LINQ hoạt động trên IQueryable<T>
chỉ có thể từng chứa một biểu thức đơn , do sự phục hồi mà chỉ có một biểu thức duy nhất có thể được chuyển đổi thành một cây biểu thức?
Cảm ơn bạn
Bây giờ, những gì trên trái đất sẽ * bạn * biết về một cái gì đó được đề cập trong ** C# trong chiều sâu **? Đưng bận tâm. –
cảm ơn cả hai rất nhiều – AspOnMyNet
@Jon: Nó đột nhiên xảy ra với tôi làm thế nào rất liên quan đến câu hỏi này là ở đó tại http://stackoverflow.com/questions/8405423/do-at-compile-time-linq-to-objects- statement-also-get-dịch-into-expressio * nháy mắt nháy mắt * – AspOnMyNet