将字符串转换为枚举?

use*_*359 2 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 = 11,
        EQUIPPED = -1
    }
Run Code Online (Sandbox Code Playgroud)

现在,我有一个领域:

    public InventoryType InventoryType { get; private set; }
Run Code Online (Sandbox Code Playgroud)

我从MySql加载数据.MySql的类型列具有InventoryType的字符串.如何将我得到的字符串转换为枚举InventoryType?

我试过了:

this.InventoryType = reader.GetString("type");
Run Code Online (Sandbox Code Playgroud)

但是,当然,这不起作用,因为它获得了一个字符串并需要一个InventoryType.我该怎么做才能转换它?谢谢.

Lee*_*Lee 5

您可以使用Enum.TryParse以下方法解析它:

InventoryType inventoryType;
if(Enum.TryParse(reader.GetString("type"), out inventoryType))
{
    //use inventoryType
}
else
{
    //not valid
}
Run Code Online (Sandbox Code Playgroud)

  • 您应该可以省略`<InventoryType>`,因为它可以从`inventoryType`变量推断出来. (2认同)