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

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


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

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

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

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

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

Пример

Следующий код приводит к возникновению ошибки CS1938:

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

См. также