将带有 [DescriptionAttribute] 的枚举转换为 Dictionary
本文关键字:Dictionary string int 转换 枚举 DescriptionAttribute | 更新日期: 2023-09-27 17:55:56
我有这个枚举
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);
如何对上面的代码进行修改以获取每个枚举的描述及其值?
喜欢这个。
Nữ : 0
南 : 1
根据 https://stackoverflow.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);