C# 将字符串转换为枚举?
我的类中有以下枚举:C# 将字符串转换为枚举?,c#,C#,我的类中有以下枚举: public enum InventoryType { EQUIP = 1, USE = 2, SETUP = 3, ETC = 4, CASH = 5, EVAN = 6, TOTEMS = 7, ANDROID = 8, BITS = 9, MECHANIC = 10, HAKU =
public enum InventoryType
{
EQUIP = 1,
USE = 2,
SETUP = 3,
ETC = 4,
CASH = 5,
EVAN = 6,
TOTEMS = 7,
ANDROID = 8,
BITS = 9,
MECHANIC = 10,
HAKU = 11,
EQUIPPED = -1
}
现在,我有一个字段:
public InventoryType InventoryType { get; private set; }
我从MySql加载数据。MySql的类型列具有作为InventoryType的字符串。如何将获取的字符串转换为enum InventoryType
我试过:
this.InventoryType = reader.GetString("type");
但当然,这是行不通的,因为它需要一个字符串并需要一个InventoryType。我能做些什么来转换它?谢谢。您可以使用
Enum.Parse
将字符串解析回Enum值-
this.InventoryType = (InventoryType)Enum.Parse(typeof(InventoryType),
reader.GetString("type"));
此外,如果您确定值将有效,请使用Parse
;否则使用TryParse
您可以使用以下方法对其进行解析:
试试这个:-
this.InventoryType= (InventoryType) Enum.Parse( typeof(InventoryType), reader.GetString("type") );
可能重复检查@RohitVats您也错过了
)
之后的InventoryType
@King谢谢。更新!!从示例中可以明显看出这一点,但以防万一:如果不存在匹配项,Parse将抛出异常。TryParse获取一个out参数并返回一个bool,表示成功或失败。@Rob-确实如此。这就是它的工作原理。希望这是显而易见的。尽管在回答中提到了。您应该能够省去
,因为它可以从inventoryType
变量中推断出来。我不能在enum delcartion:字符串的末尾使用吗?
this.InventoryType= (InventoryType) Enum.Parse( typeof(InventoryType), reader.GetString("type") );