Como posso reduzir IEnumerable > para IEnumerable ?
-
05-07-2019 - |
Pergunta
Infelizmente para a legenda estranho. O que eu estou tentando alcançar é simples:
IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();
Exemplo:
{{0, 1}, {2, 3}} => {0, 1, 2, 3}
Eu sou positivo há uma expressão Linq para este ...
Sidenote:. As listas podem ser grandes
Solução
Como leppie diz, você quer Enumerable.SelectMany
. A forma mais simples seria:
combined = listOfList.SelectMany(x => x);
Em expressões de consulta, SelectMany
é chamado quando você tem mais de uma cláusula from
, portanto, uma alternativa seria:
combined = from x in listOfList
from y in x
select y;
Outras dicas
SelectMany ()
OK
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow