2012-09-12 79 views
0

我有一个int,我想知道相应的枚举值。我怎样才能得到正确的枚举值从int c#

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

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

+0

通过阅读有关枚举的MSDN文章,可以很容易地得到解答。枚举的默认值是一个整数,因为LB指出您需要做的就是将其转换为整数。 –

+0

@Ramhound我可以从文章(http://msdn.microsoft.com/en-us/library/sbbt4032(v=vs.71).aspx)知道我可以从枚举转换为int,但它并不明显对我来说,我可以走另一条路。 – OscarRyz

回答

5

像这样的东西?

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


    var en = (StringSplitOptions)SeekOrigin.Begin; 
5

这两个enum类型如何“对应”?如果没有直接的联系,那么是的,一个大的switch声明将是必要的。否则,如果它们具有相同的基础值,那么您可以简单地从一种类型投射到另一种类型。如果您有int,则还可以将其转换为所需的enum类型。

1

有两种情况,一种是枚举共享值,另一种是共享名称。您可以投射这些值并解析名称,如下所示。如果名字和数值都不相同,你当然不能这样做。

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 
}