如何将字符串转换为给定的枚举

时间:2011-08-16 19:43:57

标签: c# .net enums

如何投射字符串枚举?

我有下面的代码,当我尝试将字符串分配给levelEnum时,它给出了错误,其中levelEnum是枚举...

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

有没有办法通过为其分配值来选择Enum项目?

希望它足够清楚

3 个答案:

答案 0 :(得分:6)

尝试以下

return (CRF_DB.CRF_Requirement.LevelEnum)Enum.Parse(
  typeof(CRF_DB.CRF_Requirement.LevelEnum), 
  prop.Value.ToString());

答案 1 :(得分:2)

答案 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());
    }
}