我定义了两个相同的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类的静态成员之一自动执行映射。但是,这更加繁琐且慢得多。

10-07 20:00