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

Iva*_*ono 2 c# enums

基于这个问题,并且最好使用这个答案以及获得枚举属性的答案,如何将枚举转换为字典,其中Key是枚举值本身并且Value是描述属性?

Pie*_*rOz 9

鉴于GetAttributeOfType<T>()扩展方法,您可以简单地执行:

var dic = Enum.GetValues(typeof(SomeEnum))
.Cast<SomeEnum>()
.ToDictionary(k => k, v => v.GetAttributeOfType<DescriptionAttribute>())
Run Code Online (Sandbox Code Playgroud)

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

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