2013-04-16 102 views
-3

我需要指定一個字符串Enum值。我的場景,下面的代碼字符串到枚舉在c#

上午訪問Web服務方法說addWhere(int i ,int j,Comparison)

哪裏比較ENUM類型。從UI

上午取值和具有它在一個字符串

string strComparison= "AND"; or 

string strComparison= "OR" 

我需要這些值設置爲ENUM。我試了下面的代碼

addWhere(2 ,3,Enum.Parse(typeof(Comparison),strComparison)) 

但沒有奏效。解決這個或其他方法的方法是什麼?

感謝

+0

'Enum.Parse'是解決方案,沒有好的選擇。你不會說出了什麼問題。查看重複或文檔。 – Jodrell

+1

「不起作用」永遠不是可接受的問題描述。 **什麼**不起作用?你得到了什麼**錯誤**?請記住在你的問題中包含所有**相關細節**。 –

回答

2

看起來你錯過了回投即

(Comparison)Enum.Parse(typeof(Comparison), strComparison); 

Enum.Parse返回object分別爲您addWhere方法需要另外一種Comparison類型值。

0

你必須把結果的Enum.Parse正確類型:

addWhere(2, 3, (Comparison)Enum.Parse(typeof(Comparison), strComparison)); 
0

你可以這樣做:

Comparison comparison; 
if(Comparison.TryParse(strComparison, out comparison)) 
{ 
    // Work with the converted Comparison 
} 
0

如前面的帖子說,你可能會丟失類型轉換。

enum Comparision 
{ 
     AND, 
     OR 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Comparision cmp = (Comparision)Enum.Parse(typeof (Comparision), "And", true); 
     Console.WriteLine(cmp == Comparision.OR ); 
     Console.WriteLine(cmp == Comparision.AND); 
    } 
}