如何将字符串强制转换为给定的Enum

本文关键字:Enum 转换 字符串 | 更新日期: 2023-09-27 18:06:01

如何强制转换字符串enum ?

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

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

是否有一种方法可以通过赋值来选择Enum项目?

希望足够清楚

如何将字符串强制转换为给定的Enum

试试下面的

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

查看Enum。TryParse

http://msdn.microsoft.com/en-us/library/dd783499.aspx

为了避免异常,您可以通过调用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());
    }
}