Leggere in inglese

Condividi tramite


Errore del compilatore CS1937

Il nome 'name' non si trova nell'ambito a sinistra di 'equals'. Provare a invertire le espressioni ai lati di 'equals'.

La parola chiave equals è un operatore speciale che viene usato in una clausola join per determinare l'uguaglianza tra due espressioni. La variabile di intervallo per la sequenza di origine sul lato sinistro è nell'ambito sul lato sinistro di equals e la variabile di intervallo per l'origine sul lato destro è nell'ambito solo sul lato sinistro di equals. È possibile verificarlo con IntelliSense nell'esempio di codice seguente.

Per correggere l'errore

  1. Scambiare la posizione delle due variabili di intervallo come illustrato nella riga di commento nell'esempio seguente:

Esempio

L'esempio seguente genera l'errore 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 };  
    }  
}  

Il lato sinistro viene chiamato in genere il lato "esterno" e il lato destro viene generalmente chiamato lato "interno".

Vedi anche