关于c#:使用[DescriptionAttribute]将Enum转换为Dictionary< string,int>

Convert Enum with [DescriptionAttribute] to Dictionary<string,int>

本问题已经有最佳答案,请猛点这里访问。

我有这个枚举

1
2
3
4
5
6
7
public enum Genders
    {
        [Description("N?")]
        Female,
        [Description("Nam")]
        Male
    }

我使用此代码获取每个枚举名称和值并将其保存到字典中结果是

女:0

男:1岁

1
2
3
    accountViewModel.Genders = Enum.GetValues(typeof(Account.Genders))
                               .Cast<Account.Genders>()
                               .ToDictionary(t => t.ToString(), t => (int)t);

如何对以上代码进行mofify以获取每个枚举的描述和它的值?

这样地。

n?:0

南:1


根据答案https://stackoverflow.com/a/2650090/643095,

1
string description = Enumerations.GetEnumDescription((MyEnum)value);

其中,valueint枚举值。

您可以使用如下内容:

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