Я хотел бы иметь возможность слияния IEnumerable<IEnumerable<T>>
в IEnumerable<T>
(т.е. объединить все отдельные коллекции в один). Операторы Union
применимы только к двум коллекциям. Любая идея?
Как объединить коллекцию коллекций в Linq
Ответ 1
Попробуйте
var it = GetTheNestedCase();
return it.SelectMany(x => x);
SelectMany - это преобразование LINQ, которое по существу говорит: "Для каждого элемента в коллекции возвращают элементы коллекции". Он превратит один элемент во многие (следовательно, SelectMany). Это отлично подходит для разбивки коллекций коллекций в плоский список.
Ответ 2
var lists = GetTheNestedCase();
return
from list in lists
from element in list
select element;
- это еще один способ сделать это, используя синтаксис выражения запроса С# 3.0.