将带有 [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);

其中valueint 枚举值。

你可以这样使用:

accountViewModel.Genders = Enum.GetValues(typeof(Account.Genders))
                               .Cast<Account.Genders>()
                               .ToDictionary(t => Enumerations.GetEnumDescription((Genders)t), t => (int)t);

【讨论】:

以上是关于将带有 [DescriptionAttribute] 的枚举转换为 Dictionary<string,int> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

DescriptionAttribute Class

C# 给枚举定义DescriptionAttribute,把枚举转换为键值对

C# 给枚举定义DescriptionAttribute,把枚举转换为键值对

将 helpstring 属性应用于通过 COM 接口公开的 C# 属性

C# 添加枚举中文资源

枚举扩展方法获取枚举Description