对 LINQ 查询范围和迭代变量使用相同的名称是好习惯吗?

Is using the same name for LINQ Queries range and iteration variables good practise?

在“MSDN”它说“范围变量就像 foreach 语句中的迭代变量,除了一个非常重要的区别:范围变量从不实际存储来自源的数据。这只是一种语法上的便利,使查询能够描述执行查询时会发生什么。"

下方 Introduction to LINQ Queries (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 示例为范围和迭代变量分配不同的名称。

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

在第 2 步中,您正在构建查询,在第 3 步中,您已经执行了查询, 所以 (1st)num var 与 (foreach)num var

不同时存在

从技术上讲,两个 num var 代表相同的概念,因此您可以随意使用。 通常为范围变量

开发用户 'item'

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