Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

Compiler Error CS1947

Visual Studio 2008

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

  1. Remove the assignment to the range variable.

  2. If necessary, introduce a new range variable by using the let clause and use it to store the value.

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();
    }
}

Community Additions

ADD
Show:
© 2015 Microsoft