0
我有这样的枚举:从枚举获取属性名称时多个值具有相同的值
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 3 :有限呼吸困难 4:限定呼吸困难 5:呼吸困难在休息 6:呼吸困难在休息
由于限定呼吸困难和中度COPD具有4在RES相同的值,和呼吸困难t和Fibrosis具有相同的值8,它看起来像Enum.GetValues()只获取第一个值并接受该字符串属性。尽管重复值,我怎样才能得到所有的枚举名称?
我需要字符串EnumNames。对于这个特定的枚举,名称与字符串类似,但在其他字符中,它们是非常不同的,包括特殊字符,数字等。 – BBH1023
为此,您可以编写一个简单的* switch *语句来获取枚举的字符串表示形式,或者看到这个有用的:http://stackoverflow.com/questions/630803/associating-enums-with-strings-in-c-sharp –