2015-03-02 53 views
-1

這是我的聲明。將值/類型字符串對轉換爲C#中的枚舉值

public enum Egypt { 
    Cairo = (long)1521894, 
    Alexandria = (long)1522006, 
    Giza = (long)1521643 
} 

從aspx頁面,我得到一個query-stringEgypt。有了這個值,我想分析這個枚舉的名稱和值Egypt

var values = Enum.GetValues(typeof(Egypt)).Cast<Egypt>(); 
foreach (Egypt in values) 
{ 
    long woeid = ((long)(Egypt)(s)); 
} 

我有代碼來得到這樣的值,但我的觀點是值枚舉 - 埃及本身是在運行時確定的。我將如何實現它?

+4

請在提問之前進行搜索。只需搜索問題的*標題*即可找到正確的答案。 – 2015-03-02 10:49:30

+1

你有一點,但這是不同於這個問題。我已經經歷了這個問題。兩者都不同。您指向的鏈接指向枚舉對象中的值,我的問題指向枚舉對象。你可以檢查它們。 – 2015-03-02 10:53:33

+3

啊,是的,我明白了。重新開放。這聽起來像你可能只是想'Type.GetType()'...雖然不清楚'City'出現在哪裏,或者你爲什麼要在'埃及''是'int' ...或者是什麼'。完全有可能你根本不想枚舉,而只是字典。 – 2015-03-02 11:00:00

回答

4

您可以使用反射來找到類型:

var vals = Enum.GetValues(Type.GetType("Egypt")); 

小提琴:https://dotnetfiddle.net/AxlFW7

當然,你需要添加正確的命名空間和/或找到它所需的組裝和檢查對於可能的錯誤

+0

謝謝。它解決了這個問題 – 2015-03-02 11:33:51