Ler em inglês

Partilhar via


Erro do compilador CS1937

O nome 'nome' não está no escopo no lado esquerdo de 'iguais'. Considere trocar as expressões de ambos os lados de "iguais".

A equals palavra-chave é um operador especial que é usado em uma join cláusula para determinar a igualdade entre duas expressões. A variável range para a sequência de origem do lado esquerdo está no escopo no lado esquerdo de equals, e a variável range para a fonte do lado direito está apenas no escopo no lado esquerdo de equals. Você pode verificar isso experimentando o IntelliSense no exemplo de código a seguir.

Para corrigir este erro

  1. Troque a posição das duas variáveis de intervalo conforme mostrado na linha comentada no exemplo a seguir:

Exemplo

O exemplo a seguir gera 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 };  
    }  
}  

O lado esquerdo é geralmente chamado de lado "externo" e o direito é geralmente chamado de lado "interno".

Consulte também