Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串转换为枚举?_C# - Fatal编程技术网

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") );