将带有 [DescriptionAttribute] 的枚举转换为 Dictionary<string,int> [重复]
Posted
技术标签:
【中文标题】将带有 [DescriptionAttribute] 的枚举转换为 Dictionary<string,int> [重复]【英文标题】:Convert Enum with [DescriptionAttribute] to Dictionary<string,int> [duplicate] 【发布时间】:2014-04-01 09:48:47 【问题描述】:我有这个枚举
public enum Genders
[Description("Nữ")]
Female,
[Description("Nam")]
Male
我使用此代码获取每个枚举名称和值并将其保存到字典 结果是
女性:0
男性:1
accountViewModel.Genders = Enum.GetValues(typeof(Account.Genders))
.Cast<Account.Genders>()
.ToDictionary(t => t.ToString(), t => (int)t);
如何修改上述代码以获取每个 Enum 的描述及其值?
像这样。
Nữ : 0
名称:1
【问题讨论】:
【参考方案1】:根据https://***.com/a/2650090/643095的回答,
string description = Enumerations.GetEnumDescription((MyEnum)value);
其中value
是int
枚举值。
你可以这样使用:
accountViewModel.Genders = Enum.GetValues(typeof(Account.Genders))
.Cast<Account.Genders>()
.ToDictionary(t => Enumerations.GetEnumDescription((Genders)t), t => (int)t);
【讨论】:
以上是关于将带有 [DescriptionAttribute] 的枚举转换为 Dictionary<string,int> [重复]的主要内容,如果未能解决你的问题,请参考以下文章
C# 给枚举定义DescriptionAttribute,把枚举转换为键值对
C# 给枚举定义DescriptionAttribute,把枚举转换为键值对