Leggere in inglese

Condividi tramite


Errore del compilatore CS1938

Il nome 'name' non si trova nell'ambito a destra 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

Il codice seguente genera l'errore 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 };  
    }  
}  

Vedi anche