C# 如何将字符串强制转换为给定的枚举

C# 如何将字符串强制转换为给定的枚举,c#,.net,enums,C#,.net,Enums,如何强制转换字符串枚举 我有下面的代码,当我尝试将字符串分配给levelEnum时,它会给我错误,其中levelEnum是一个枚举 foreach (CustomProperty prop in requirementTemplate.AttributesCustomList) { if (prop.Name == property) { return (CRF_DB.CRF_Requirement.LevelEnum) (prop.Value.ToString(

如何强制转换字符串枚举

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

foreach (CustomProperty prop in requirementTemplate.AttributesCustomList)
{
    if (prop.Name == property)
    {
        return (CRF_DB.CRF_Requirement.LevelEnum) (prop.Value.ToString());
    }
}
有没有一种方法可以通过给select Enum项赋值来放置它

希望它足够清晰

尝试以下方法

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


为了避免异常,您可以通过调用
IsDefined
检查该枚举中是否存在该值。如果您使用的是.NET4.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());
    }
}

prop.value
返回的值的类型是什么?