编译器错误 CS1931

更新:2007 年 11 月

错误消息

范围变量“variable”与“variable”以前的声明冲突。

就像所有其他声明一样,范围变量的声明必须具有一个标识符,该标识符在变量的声明空间内是唯一的。

更正此错误

  • 为范围变量指定一个唯一名称。

示例

下面的代码生成 CS1931,因为标识符 x 同时被用作 Main 中的局部变量和查询表达式中的范围变量:

// cs1931.cs
class Test
    {
        static void Main()
        {
            int x = 1;
            var y = from x in Enumerable.Range(1, 100) // CS1931
                    select x;
        }
    }

请参见

概念

LINQ 查询表达式(C# 编程指南)