Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS1937

Nazwa "name" nie znajduje się w zakresie po lewej stronie "równości". Rozważ zamianę wyrażeń po obu stronach "równości".

Słowo equals kluczowe to specjalny operator, który jest używany w klauzuli join w celu określenia równości między dwoma wyrażeniami. Zmienna zakresu dla sekwencji źródła po lewej stronie znajduje się w zakresie po lewej stronie równości, a zmienna zakresu dla źródła po prawej stronie znajduje się tylko w zakresie po lewej stronie równości. Możesz to sprawdzić, eksperymentując z funkcją IntelliSense w poniższym przykładzie kodu.

Aby poprawić ten błąd

  1. Zamień położenie dwóch zmiennych zakresu, jak pokazano w wierszu komentarza w poniższym przykładzie:

Przykład

Poniższy przykład generuje plik CS1937.

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

Lewa strona jest zwykle nazywana "zewnętrzną" stroną, a po prawej stronie jest zwykle nazywana "wewnętrzną".

Zobacz też