如何将字符串转换为指定的枚举类型

4

如何转换字符串枚举?

我有以下代码,在尝试将字符串赋值给levelEnum时出现错误,其中levelEnum是一个枚举类型。

foreach (CustomProperty prop in requirementTemplate.AttributesCustomList)
{
    if (prop.Name == property)
    {
        return (CRF_DB.CRF_Requirement.LevelEnum) (prop.Value.ToString());
    }
}

有没有一种方法可以通过给枚举项分配值来选择枚举项?希望这已经足够清楚了。

1
prop.Value 返回的值的类型是什么? - dtb
3个回答

6
尝试以下步骤:
return (CRF_DB.CRF_Requirement.LevelEnum)Enum.Parse(
  typeof(CRF_DB.CRF_Requirement.LevelEnum), 
  prop.Value.ToString());

2

0
为了避免异常,您可以通过调用IsDefined来检查该枚举中是否存在该值。如果您使用的是.NET 4.0,则TryParse方法将是最佳解决方案。
foreach (CustomProperty prop in requirementTemplate.AttributesCustomList)
{
    if (prop.Name == property && Enum.IsDefined(typeof(LevelEnum), prop.Value))
    {
        return (LevelEnum)Enum.Parse(typeof(LevelEnum), prop.Value.ToString());
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接