【发布时间】:2014-01-05 05:00:20
【问题描述】:
我有这个枚举:
public enum PPossumResp
{
[EnumName("No Dyspnea")]
NoDyspnea = 1,
[EnumName("Dyspnea On Exertion")]
DyspneaOnExertion = 2,
[EnumName("Mild COPD on CXR")]
MildCOPDonCXR = 2,
[EnumName("Limited Dyspnea")]
LimitedDyspnea = 4,
[EnumName("Moderate COPD")]
ModerateCOPD = 4,
[EnumName("Dyspnea At Rest")]
DyspneaAtRest = 8,
[EnumName("Fibrosis")]
Fibrosis = 8
}
我正在尝试使用所有 EnumName 属性填充列表。
我有这个方法可以尝试:
public EnumPickerViewModel(Parameter param)
{
this.param = param;
List<string> enumNames = new List<string>();
foreach(Enum type in Enum.GetValues(param.Value.GetType()))
{
enumNames.Add(Utils.GetEnumName(type));
}
}
不幸的是,enumNames 填充了以下内容: 0:无呼吸困难 1:劳累呼吸困难 2:CXR 上的轻度 COPD 3:有限的呼吸困难 4:有限的呼吸困难 5:休息时呼吸困难 6:休息时呼吸困难
由于 Limited Dyspnea 和 Moderate COPD 的值相同,均为 4,而 Dyspnea at Rest 和 Fibrosis 的值相同,均为 8,看起来 Enum.GetValues() 仅获取第一个值并采用该字符串属性。尽管有重复值,如何获取所有枚举名称?
【问题讨论】: