Я хотел был бы иметь fusion a IEnumerable<IEnumerable<T>>
в IEnumerable<T>
(т. Е. Объединить все индивидуальные коллекции в один). Операторы Union
применимы только к двум коллекциям. Есть идеи?Как слить коллекцию коллекций в Linq
45
A
ответ
82
Попробуйте
var it = GetTheNestedCase();
return it.SelectMany(x => x);
SelectMany является преобразование LINQ, который по существу говорит: «Для каждого элемента в коллекции возвращают элементы коллекции». Он превратит один элемент во многие (следовательно, SelectMany). Это отлично подходит для разбивки коллекций коллекций в плоский список.
13
var lists = GetTheNestedCase();
return
from list in lists
from element in list
select element;
- еще один способ сделать это, используя синтаксис выражения запроса C# 3.0.
LINQ никогда не перестает удивлять меня тем, что он может сделать из коробки. :) – neminem 2014-04-18 15:29:22