繁体   English   中英

我如何从int C#获取正确的枚举值

[英]How can I get the correct enum Value from an int c#

我有一个整数,我想知道相应的枚举值。

实际上有一个枚举,我想返回另一个枚举的相应值。

我可能只使用一个大开关,但是我想知道是否有更好的方法。

像这样吗

 MyEnum m = (MyEnum)((int)otherEnum);


  var en = (StringSplitOptions)SeekOrigin.Begin;

两种enum类型如何“对应”? 如果没有直接链接,则是,将需要一个大的switch语句。 否则,如果它们具有相同的基础值,则可以简单地从一种类型转换为另一种类型。 如果您有一个int ,也可以将其enum转换为所需的enum类型。

有两种情况,一种是枚举共享值,另一种是共享名称。 您可以转换值并解析名称,如下所示。 如果名称和值都不相同,那么您当然不能这样做。

public void Test() {
    var one = FirstEnumWithSameValues.Two;
    var two = (SecondEnumWithSameValues) one;

    var three = FirstEnumWithSameName.Two.ToString();
    var four = (SecondEnumWithSameName) Enum.Parse(typeof(SecondEnumWithSameName), three);
}

public enum FirstEnumWithSameValues
{
   One = 1,
   Two = 2,
   Three = 3
}

public enum SecondEnumWithSameValues
{
    Uno = 1,
    Due = 2,
    Trez = 3
}

public enum FirstEnumWithSameName
{
    One = 1,
    Two = 2,
    Three = 3
}

public enum SecondEnumWithSameName
{
    One = 4,
    Two = 5,
    Three = 6
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM