使用[DescriptionAttribute]将Enum转换为Dictionary <string,int> </string,int>

时间:2014-04-01 09:48:47

标签: c# dictionary enums

我有这个枚举

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);

如何mofify上面的代码来获取每个枚举的描述及其值?

喜欢这个。

Nữ:0

Nam:1

1 个答案:

答案 0 :(得分:0)

根据答案https://stackoverflow.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);