我班上有以下枚举:
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的字符串。如何将我得到的字符串转换为枚举InventoryType?
我试过了:
this.InventoryType = reader.GetString("type");
但当然,这不起作用,因为它获得了一个字符串并需要一个InventoryType。我该怎么做才能转换它?感谢。
答案 0 :(得分:5)
您可以使用Enum.TryParse
解析它:
InventoryType inventoryType;
if(Enum.TryParse(reader.GetString("type"), out inventoryType))
{
//use inventoryType
}
else
{
//not valid
}
答案 1 :(得分:3)
您可以使用Enum.Parse
将字符串解析回枚举值 -
this.InventoryType = (InventoryType)Enum.Parse(typeof(InventoryType),
reader.GetString("type"));
另外,如果您确定该值有效,请使用Parse
;否则使用TryParse
。
答案 2 :(得分:0)
试试这个: -
this.InventoryType= (InventoryType) Enum.Parse( typeof(InventoryType), reader.GetString("type") );