【发布时间】:2011-09-12 09:30:11
【问题描述】:
为什么可以使用这个:
from r1 in Enumerable.Range(1, 10)
join q1 in Enumerable.Range(1, 20) on r1 equals q1
select r1;
但不能使用这个:
from r1 in Enumerable.Range(1, 10)
let q = Enumerable.Range(1, 20)
join q1 in q on r1 equals q1
select r1;
let clause 上的 MSDN documentation 缺少一些细节。
更新:
我只是试图使表达式更清晰易读。在我的情况下,我有一些方法链接我想放到let clause。否则,连接子句变得太可怕了。由于无法使用let clause(正如乔恩提到的),我在这里介绍了外部变量:
IEnumerable<int> q = Enumerable.Range(1, 10);
from r1 in Enumerable.Range(1, 10)
join q1 in q on r1 equals q1
select r1;
【问题讨论】:
-
在我的回答中查看 msdn 博客链接......他们解释得很好......