如何将字符串转换为int类型的枚举?

时间:2009-11-05 21:06:04

标签: c# enumeration

  

可能重复:
  How do I Convert a string to an enum in C#?

我有一个int类型的枚举:

public enum BlahType
{
       blah1 = 1,
       blah2 = 2
}

如果我有一个字符串:

string something = "blah1"

如何将其转换为BlahType?

4 个答案:

答案 0 :(得分:8)

我使用像这样的功能

public static T GetEnumValue<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value);
}

你可以这样称呼它

BlahType value = GetEnumValue<BlahType>("Blah1");

答案 1 :(得分:7)

您需要Enum.Parse

BlahType blahValue = (BlahType) Enum.Parse(typeof(BlahType), something); 

答案 2 :(得分:2)

我使用此函数将字符串转换为枚举;然后你可以转换为int或其他任何东西。

public static T ToEnum<T>(string value, bool ignoreUpperCase)
        where T : struct, IComparable, IConvertible, IFormattable {
        Type enumType = typeof (T);
        if (!enumType.IsEnum) {
            throw new InvalidOperationException();
        }
        return (T) Enum.Parse(enumType, value, ignoreUpperCase);
}

答案 3 :(得分:1)

    public enum BlahType
    {
        blah1 = 1,
        blah2 = 2
    }

    string something = "blah1";
    BlahType blah = (BlahType)Enum.Parse(typeof(BlahType), something);

如果您不确定转换是否会成功 - 请改用TryParse