Lezen in het Engels

Delen via


Compilerfout CS1937

De naam 'name' bevindt zich niet in het bereik aan de linkerkant van 'is gelijk aan'. Overweeg om de expressies aan beide zijden van 'is gelijk aan' te wisselen.

Het equals trefwoord is een speciale operator die wordt gebruikt in een join component om gelijkheid tussen twee expressies te bepalen. De bereikvariabele voor de bronreeks links bevindt zich in het bereik aan de linkerkant van gelijk aan en de bereikvariabele voor de bron aan de rechterkant bevindt zich alleen in het bereik aan de linkerkant van gelijk aan. U kunt dit controleren door te experimenteren met IntelliSense in het volgende codevoorbeeld.

Deze fout corrigeren

  1. Verwissel de positie van de twee bereikvariabelen, zoals wordt weergegeven in de opmerkingsregel in het volgende voorbeeld:

Opmerking

In het volgende voorbeeld wordt CS1937 gegenereerd.

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

De linkerkant wordt over het algemeen de 'buitenste' kant genoemd en de rechterkant wordt meestal de 'binnenste' zijde genoemd.

Zie ook