Compilerfehler CS1937

Aktualisiert: November 2007

Fehlermeldung

Der Name "Name" ist auf der linken Seite von "equals" nicht im Bereich. Vertauschen Sie die Ausdrücke auf beiden Seiten von "equals".
The name 'name' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.

Das equals-Schlüsselwort ist ein spezieller Operator, der in einer join-Klausel zur Ermittlung der Gleichheit zwischen zwei Ausdrücken verwendet wird. Die Bereichsvariable für die linksseitige Quellsequenz ist im Bereich auf der linken Seite von equals, und die Bereichsvariable für die rechtsseitige Quelle ist nur im Bereich auf der linken Seite von equals. Sie können dies überprüfen, indem Sie im folgenden Codebeispiel mit IntelliSense experimentieren.

So beheben Sie diesen Fehler

  • Wechseln Sie die Position der beiden Bereichsvariablen wie in der kommentierten Zeile im folgenden Beispiel gezeigt:

Im folgenden Beispiel wird der Fehler CS1937 ausgelöst:

// cs1937.cs
using System.Linq;
class Test
{
    static void Main()
    {
        int[] sourceA = { 1, 2, 3, 4, 5 };
        int[] sourceB = { 3, 4, 5, 6, 7 };

        var query = from a in sourceA
                    join b in sourceB on b equals a // CS1937
                    // Try the following line instead.
                    //join b in sourceB on a equals b
                    select new { a, b };
    }
}

Die linke Seite wird im Allgemeinen als "Außenseite" bezeichnet, die rechte als "Innenseite".

Community-Beiträge

Anzeigen: