关于C#:如何将字符串转换为int类型的枚举?

How to conver a string to a enum of type int?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I Convert a string to an enum in C#?

我有一个int类型的枚举:

1
2
3
4
5
public enum BlahType
{
       blah1 = 1,
       blah2 = 2
}

如果我有一根绳子:

1
string something ="blah1"

如何将此转换为blahtype?


我用这个函数

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

你可以这样称呼它

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


你想要枚举分析

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


我使用此函数将字符串转换为枚举;然后您可以转换为int或其他类型。

1
2
3
4
5
6
7
8
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);
}


1
2
3
4
5
6
7
8
    public enum BlahType
    {
        blah1 = 1,
        blah2 = 2
    }

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

如果你不确定转化会成功,那么用胰蛋白酶代替。