使用英语阅读

通过


编译器错误 CS1947

无法对范围变量“变量名称”赋值 -- 它是只读的。

foreach 语句中,范围变量类似于迭代变量。 查询表达式中不能对其赋值。

更正此错误

  1. 删除对范围变量的赋值。

  2. 如有必要,可通过使用 let 子句引入新的范围变量并用其存储值。

示例

以下代码生成 CS1947:

// cs1947.cs  
using System.Linq;  
class Test  
{  
    static void Main()  
    {  
        int[] array = new int[] { 1, 2, 3, 4, 5 };  
        var x = from i in array  
                let k = i  
                select i = 5; // CS1947  
        x.ToList();  
    }  
}  

请参阅