Q:

LINQ creating a new anonymous type when selecting a property that is a dictionary

I have a Simple POCO like this: 
[JsonObject(NamingStrategyType = typeof (CamelCaseNamingStrategy))]
public class MyType
{

    public string Id { get; set; }

    public string Name;

    [JsonExtensionData(ReadData = true, WriteData = true)]
    public IDictionary<string, object> TypeDetails { get; set; }
}

and a method that gives me a list of MyType
i'm trying to return a list of Dictionary<string,object> with all the TypeDetails of the object list i got. 
like this:
types.Select((myType) => myType.TypeDetails)

however, when i run this, what i get is a list of Dictionaries, but with the following shape:
[
  {TypeDetails: {the dictionary i want},
  {TypeDetails: {the dictionary i want}},
  (...)
]

what i was expecting:
[
  {the dictionary i want},
  {the dictionary i want},
  (...)
]

to clarify: i'd like this to be true:
types[0].TypeDetails.equals(r[0])
It's the same as if i were doing
types.Select((myType) => new {myType.TypeDetails})

if i get any other property the select behaves as i expected it.
i can't find any doc that indicates whether dictionaries get a special treatment, nor any other clue about why this is happening. 

A:

Use .SelectMany() on the Dictionary's values, like so: 
types.SelectMany((myType) => myType.TypeDetails.Values)

