Sdílet prostřednictvím


Compilerfehler CS1947

Aktualisiert: November 2007

Fehlermeldung

Der Bereichsvariablen "Variablenname" kann nichts zugewiesen werden, sie ist schreibgeschützt.
Range variable 'variable name' cannot be assigned to -- it is read only.

Eine Bereichsvariable ist wie eine Iterationsvariable in einer foreach-Anweisung. Ihr kann in einem Abfrageausdruck nichts zugewiesen werden.

So beheben Sie diesen Fehler

  1. Entfernen Sie die Zuweisung zur Bereichsvariablen.

  2. Führen Sie ggf. eine neue Bereichsvariable mit der let-Klausel ein, und verwenden Sie sie zum Speichern des Werts.

Beispiel

Durch den folgenden Code wird der Fehler CS1947 ausgelöst:

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

Siehe auch

Konzepte

LINQ-Abfrageausdrücke (C#-Programmierhandbuch)