2012-09-12 105 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 
}