Compiler Error CS1947
Range variable 'variable name' cannot be assigned to -- it is read only.
A range variable is like an iteration variable in a foreach statement. It cannot be assigned to in a query expression.
To correct this error
Remove the assignment to the range variable.
If necessary, introduce a new range variable by using the let clause and use it to store the value.
Example
The following code generates 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();
}
}