如何投射字符串枚举?
我有下面的代码,当我尝试将字符串分配给levelEnum时,它给出了错误,其中levelEnum是枚举...
foreach (CustomProperty prop in requirementTemplate.AttributesCustomList)
{
if (prop.Name == property)
{
return (CRF_DB.CRF_Requirement.LevelEnum) (prop.Value.ToString());
}
}
有没有办法通过为其分配值来选择Enum项目?
希望它足够清楚
答案 0 :(得分:6)
尝试以下
return (CRF_DB.CRF_Requirement.LevelEnum)Enum.Parse(
typeof(CRF_DB.CRF_Requirement.LevelEnum),
prop.Value.ToString());
答案 1 :(得分:2)
看看Enum.TryParse
答案 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());
}
}