Existe um erro neste código de 101 exemplos LINQ no MSDN? (Atualização: corrigida)
NOTA:Charlie Calvert respondeu abaixo que os 101 exemplos de LINQ agora foram atualizados com o código correto.
O MSDN Visual C # Developer Center possui uma seção chamada101 amostras LINQ. Encontrei isso através de uma pesquisa do Bing.
O código paraSelectMany - Composto de 1 é:
public void Linq14() {
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA,
b in numbersB
where a < b
select new {a, b};
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs) {
Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
}
}
Contudo,este código não será compilado. Notei que se eu remover a vírgula no final defrom a in numbersA,
e adicionefrom
em frente deb in numbersB
, ele irá compilar e funcionar bem:
var pairs =
from a in numbersA
from b in numbersB
where a < b
select new {a, b};
Não tenho certeza se isso é um bug no exemplo do MSDN ou se possivelmente estou executando uma versão do C # e .NET que não oferece suporte a essa sintaxe.
Se eu olhar para a farinha de rosca no topo da101 amostras LINQ site, vejo "Versões futuras". Isso indica que as versões futuras do C # / .NET suportarão o uso de vírgula em vez defrom
na sintaxe LINQ?
Estou usando o Visual Studio 2008 Standard com o .NET 3.5 SP1.