在“ {{3}”处,它表示“范围变量就像foreach语句中的迭代变量,除了一个非常重要的区别:范围变量从不实际存储源数据。只是语法上的便利,它使查询能够描述执行查询时将发生的情况。”
下面的MSDN(C#)”示例是范围和迭代变量具有相同名称(“ num”)的少数几个示例之一
// 2. Query creation.
var numQuery =
from num in numbers
where (num % 2) == 0
select num;
// 3. Query execution.
foreach (int num in numQuery)
{
Console.Write("{0,1} ", num);
}
通常,MSDN示例为范围和迭代变量分配不同的名称。
在似乎方便的情况下,是否有任何理由不对范围变量和迭代变量使用相同的名称?
答案 0 :(得分:0)
在第2步中,您正在构建查询,在第3步中,您已经执行了查询, 因此(1st)num var与(foreach)num var不同时存在
从技术上讲,两个num var表示相同的概念,因此您可以根据需要使用。 通常,开发人员将用户“ item”用于范围变量
如果foreach语句又长又复杂,我会使用您的命名约定 ...否则=>'item'