Compartir a través de


Error del compilador CS1947

Actualización: noviembre 2007

Mensaje de error

La variable de rango 'nombre de variable' no puede asignarse; es de solo lectura.
Range variable 'variable name' cannot be assigned to -- it is read only.

Una variable de rango es como una variable de iteración en una instrucción foreach. No puede asignarse en una expresión de consulta.

Para corregir este error

  1. Quite la asignación a la variable de rango.

  2. Si es necesario, incluya una nueva variable de rango mediante la cláusula let y utilícela para almacenar el valor.

Ejemplo

El código siguiente genera el error 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();
    }
}

Vea también

Conceptos

Expresiones de consultas con LINQ (Guía de programación de C#)