public IEnumerable <KeyValuePair <string, string> > GetRichDescription() { yield return(new KeyValuePair <string, string>(WellKnownRichDescriptionKinds.Type, ClassInfo.Name)); if (KeyType.Any() || ValueType.Any()) { yield return(new KeyValuePair <string, string>(WellKnownRichDescriptionKinds.Misc, "[")); foreach (var kv in KeyType.GetRichDescriptions(unionPrefix: "[", unionSuffix: "]")) { yield return(kv); } foreach (var kv in ValueType.GetRichDescriptions(prefix: ", ", unionPrefix: "[", unionSuffix: "]")) { yield return(kv); } } }