如何将带有Description属性的Enum强制转换为字典?

时间:2015-04-13 09:48:20

标签: c# enums

基于此question,并且最好使用此answer以及此answer to get enum attributes,如何将枚举转换为Key为枚举的字典值本身和Value是描述属性吗?

1 个答案:

答案 0 :(得分:9)

根据GetAttributeOfType<T>()扩展方法,您可以执行以下操作:

var dic = Enum.GetValues(typeof(SomeEnum))
.Cast<SomeEnum>()
.ToDictionary(k => k, v => v.GetAttributeOfType<DescriptionAttribute>())

如果您直接想要值中的描述:

var dic = Enum.GetValues(typeof(SomeEnum))
.Cast<SomeEnum>()
.ToDictionary(k => k, v => v.GetAttributeOfType<DescriptionAttribute>().Description)