C# 如何将字符串强制转换为给定的枚举
如何强制转换字符串枚举 我有下面的代码,当我尝试将字符串分配给levelEnum时,它会给我错误,其中levelEnum是一个枚举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(
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
返回的值的类型是什么?