Freigeben über


Compilerfehler CS1938

Aktualisiert: November 2007

Fehlermeldung

Der Name "Name" ist auf der rechten 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 right 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:

Beispiel

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

// cs1938.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 // CS1938
                    // Try the following line instead.
                    // join b in sourceB on a equals b
                    select new { a, b };
    }
}

Siehe auch

Referenz

join-Klausel (C#-Referenz)