CS1937 de erro do compilador

Mensagem de erro

O nome 'name' não está no escopo à esquerda de 'equals'.Considere trocar as expressões em cada lado de 'equals'.

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

Para corrigir este erro

  • Troque a posição de dois intervalos de variáveis sistema autônomo mostra a 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 };
    }
}

No lado esquerdo é chamado geralmente o lado "externo" e direita geralmente é chamada no lado "interno".

Consulte também

Referência

(Referência C#) de cláusula de Junção