Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Název name není v oboru na pravé straně "equals". Zvažte prohození výrazů na obou stranách "equals".
Klíčové equals slovo je speciální operátor, který se používá v join klauzuli k určení rovnosti mezi dvěma výrazy. Proměnná rozsahu pro sekvenci zdroje na levé straně je v oboru na levé straně rovná se a proměnná rozsahu pro pravý zdroj je pouze v oboru na levé straně rovná se. Můžete to ověřit experimentováním s IntelliSense v následujícím příkladu kódu.
Oprava této chyby
- Prohodí pozici dvou proměnných rozsahu, jak je znázorněno v komentáři v následujícím příkladu:
Příklad
Následující kód vygeneruje 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 };
}
}