【发布时间】:2010-12-13 14:33:18
【问题描述】:
我有一个 int 类型的枚举:
public enum BlahType
{
blah1 = 1,
blah2 = 2
}
如果我有一个字符串:
string something = "blah1"
如何将其转换为 BlahType?
【问题讨论】:
标签: c# enumeration
我有一个 int 类型的枚举:
public enum BlahType
{
blah1 = 1,
blah2 = 2
}
如果我有一个字符串:
string something = "blah1"
如何将其转换为 BlahType?
【问题讨论】:
标签: c# enumeration
我使用这样的功能
public static T GetEnumValue<T>(string value)
{
return (T)Enum.Parse(typeof(T), value);
}
你可以这样称呼它
BlahType value = GetEnumValue<BlahType>("Blah1");
【讨论】:
你想要Enum.Parse
BlahType blahValue = (BlahType) Enum.Parse(typeof(BlahType), something);
【讨论】:
我使用这个函数将字符串转换为枚举;然后你可以转换为 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);
}
【讨论】:
public enum BlahType
{
blah1 = 1,
blah2 = 2
}
string something = "blah1";
BlahType blah = (BlahType)Enum.Parse(typeof(BlahType), something);
如果您不确定转换是否会成功,请改用TryParse。
【讨论】: