我定义了两个相同的C#枚举,如下所示:
public enum ArrivalToleranceEnum
{
ZERO,
QUARTERHOUR,
HALFHOUR,
ONEHOUR,
TWOHOURS,
}
public enum ArrivalTolerance {
/// <remarks/>
ZERO,
/// <remarks/>
QUARTERHOUR,
/// <remarks/>
HALFHOUR,
/// <remarks/>
ONEHOUR,
/// <remarks/>
TWOHOURS,
}
ArrivalTolerance是在外部库中定义的,在我的程序中,我想使用本地enumaration ArrivalToleranceEnum,因此我需要转换这两种类型。我怎样才能做到这一点?我尝试通过使用开关来完成此操作(但是使用开关),但是这非常麻烦,并且不节省时间,因为我需要转换其他更大的枚举。
最佳答案
枚举值由整数常量表示。 如果基础枚举常量与相同,则进行强制转换:
(ArrivalToleranceEnum)(int)ArrivalTolerance.HALFHOUR
如果它们不相同,则可以使用反射代码或
Enum
类的静态成员之一自动执行映射。但是,这更加繁琐且慢得多。