Existe uma sintaxe C # LINQ para o método Queryable.SelectMany ()?


88

Ao escrever uma consulta usando a sintaxe C # LINQ, há uma maneira de usar o método Queryable.SelectMany da sintaxe de palavra-chave?

Para

string[] text = { "Albert was here", 
                  "Burke slept late", 
                  "Connor is happy" };

Usando métodos fluentes, eu poderia consultar

var tokens = text.SelectMany(s => s.Split(' '));

Existe uma sintaxe de consulta semelhante a

var tokens = from x in text selectmany s.Split(' ')

o exemplo precisa de algumas melhorias ... mas eu suspeito que ele transmita o ponto básico. Sinta-se à vontade para sugerir exemplos melhores.
BrianCooksey de

Respostas:


126

Sim, você acabou de repetir a cláusula from ... in:

var words = from str in text
            from word in str.Split(' ')
            select word;

4
@BCooksey - Sim ... porque você está selecionando de uma coleção aninhada dentro do primeiro resultado.
Justin Niessner

3
Todas essas chamadas podem ser atendidas por SelectMany, que é extremamente flexível, mas o compilador escolherá entre Select, SelectMany e até mesmo nenhuma transformação, dependendo da forma da consulta
Sprague


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.