字符串到cum中的枚举

时间:2013-04-16 10:41:16

标签: c# enums

我需要为Enum值分配一个字符串。我的场景和代码在下面

访问网络服务方法时说addWhere(int i ,int j,Comparison)

比较的类型为Enum。

从UI获取值并将其保存在字符串中

string strComparison= "AND"; or

string strComparison= "OR"

我需要将这些值设置为ENUM。我尝试了下面的代码

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

但没有奏效。解决这个或任何替代方法的方法是什么?

由于

4 个答案:

答案 0 :(得分:2)

看起来你错过了返回演员,即

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

Enum.Parse返回object,因为您的addWhere方法需要Comparison类型值。

答案 1 :(得分:0)

您必须将Enum.Parse的结果转换为正确的类型:

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

答案 2 :(得分:0)

您可以执行以下操作:

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

答案 3 :(得分: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);
    }
}