Как я могу уменьшить IEnumerable<IEnumerable<Foo>> до IEnumerable<Foo>?

StackOverflow https://stackoverflow.com/questions/1600310

  •  05-07-2019
  •  | 
  •  

Вопрос

Извините за странную подпись.То, чего я пытаюсь достичь, очень просто:

IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();

Пример:

{{0, 1}, {2, 3}} => {0, 1, 2, 3}

Я уверен, что для этого существует выражение Linq...

Боковое Примечание:Списки могут быть большими.

Это было полезно?

Решение

Как говорит леппи, вы хотите Enumerable.SelectMany.Самой простой формой было бы:

 combined = listOfList.SelectMany(x => x);

В выражениях запроса, SelectMany вызывается, когда у вас есть более одного from оговорка, таким образом, альтернативой было бы:

 combined = from x in listOfList
            from y in x
            select y;

Другие советы

Выберите множество()

ОК

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top