Самый простой способ преобразовать словарь<int, Dictionary <int, Foo>> в IEnumerable<IEnumerable <Foo>> в Linq?
У меня есть объект Dictionary<int, Dictionary<int, Foo> >
с одной стороны, и функция, принимающая IEnumerable<IEnumerable<Foo> >
на другой стороне.
Какой самый простой способ преобразования из одного в другое в Linq, я не могу придумать что-то хорошее, все мои попытки заканчивались циклом foreach...
4 ответа
Решение
Это должно сделать это:
return dictionary.Values.Select(nested => nested.Values);
Результат от
var list = dict.Values.Select(kv => kv.Values);
присваивается параметру типа IEnumerable<IEnumerable<Foo> >
,
Что-то вроде этого:
var result= (
from d in dic
select
(
from values in d.Value
select values.Value
)
);
Использование:
var result = dict.Select(d => d.Value.Select(i => i.Value));