private DynamicObject MapGrouping <TKey, TElement>(IGrouping <TKey, TElement> grouping, Func <Type, bool> setTypeInformation) { var mappedGrouping = new DynamicObject(grouping.GetType()); mappedGrouping.Add("Key", MapToDynamicObjectGraph(grouping.Key, setTypeInformation)); mappedGrouping.Add("Elements", MapCollection(grouping, setTypeInformation).ToArray()); return(mappedGrouping); }