Самый простой способ преобразовать словарь> для IEnumerableв Линке? - PullRequest
1 голос
/ 26 марта 2012

У меня есть объект Dictionary<int, Dictionary<int, Foo> > с одной стороны и функция, принимающая IEnumerable<IEnumerable<Foo> > с другой стороны.

Какой самый простой способ перехода от одного к другому в Linq, я не могу придумать чего-то приятного, все мои попытки заканчивались циклом foreach ...

Ответы [ 4 ]

4 голосов
/ 26 марта 2012

Это должно сделать это:

return dictionary.Values.Select(nested => nested.Values);
2 голосов
/ 26 марта 2012

Результат от

   var list = dict.Values.Select(kv => kv.Values);

присваивается параметру типа IEnumerable<IEnumerable<Foo> >.

1 голос
/ 26 марта 2012

Примерно так:

var result= (
        from d in dic
        select
            (
                from values in d.Value
                select values.Value
            )
    );
1 голос
/ 26 марта 2012

Использование:

var result = dict.Select(d => d.Value.Select(i => i.Value));
...