Прочитать на английском

Поделиться через


Ошибка компилятора CS1937

Имя "имя" не находится в области слева от "equals". Рассмотрите возможность поменять местами выражения с обеих сторон оператора "equals".

Ключевое слово equals — это специальный оператор, который используется в предложении join для определения равенства двух выражений. Переменная диапазона для левой части исходной последовательности находится в области с левой стороны от "equals", а переменная диапазона для правой части исходной последовательности — только в области с левой стороны от "equals". Это можно проверить, поэкспериментировав с IntelliSense в следующем примере кода.

Исправление ошибки

  1. Поменяйте местами две переменные диапазона, как показано в строке комментария в следующем примере:

Пример

Следующий пример приводит к возникновению ошибки CS1937.

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

Левая сторона обычно называется "внешней", а правая — "внутренней" стороной.

См. также