score:8

Accepted answer

you can do that with a selectmany.

var list = dictionary.selectmany(
        kvp => kvp.value, 
        (kvp,obj) => new {obj.property0, obj.property1, obj.property2, kvp.key})
    .tolist();

or in query snytax

var list = (from kvp in dictionary
           from obj in kvp.value
           select new {obj.property0, obj.property1, obj.property2, kvp.key})
    .tolist();

note this results in a list of an anonymous class. if you really want dynamic you'll need to do a cast<dynamic>() before the tolist(). also if you want the last property of the anonymous class to be key instead of key you'll need to do key = kvp.key.


Related Query

More Query from same tag