LINQ Queries范围和迭代变量使用相同的名称是一种很好的做法吗?

时间:2019-08-22 06:15:37

标签: c# linq linq-to-entities

在“ {{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示例为范围和迭代变量分配不同的名称。

在似乎方便的情况下,是否有任何理由不对范围变量和迭代变量使用相同的名称?

1 个答案:

答案 0 :(得分:0)

在第2步中,您正在构建查询,在第3步中,您已经执行了查询, 因此(1st)num var与(foreach)num var不同时存在

从技术上讲,两个num var表示相同的概念,因此您可以根据需要使用。 通常,开发人员将用户“ item”用于范围变量

如果foreach语句又长又复杂,我会使用您的命名约定 ...否则=>'item'