Самый простой способ преобразовать словарь<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));
Другие вопросы по тегам