如何将字符串数组转换为枚举? 以下代码提供了关于预期内容的基本概念,
permission.Permissions.Add(Enum.Parse(typeof(PagePermission) ,a );
然而,它会抛出像
这样的错误无法将对象转换为枚举。
此处,PagePermission
是枚举。
string pagePermission = "View,Edit";
string[] permissions = pagePermission.Split(',');
permission.Permissions = new List<PagePermission>();
for (int i = 0; i < permissions.Length; i++)
{
string a = permissions[i];
permission.Permissions.Add(Enum.Parse(typeof(PagePermission) ,a );
}
答案 0 :(得分:6)
使用this
IEnumerable<myEnum> items = myArray.Select(a => (myEnum)Enum.Parse(typeof(myEnum), a));
答案 1 :(得分:1)
Enum.Parse
返回object
,您需要将其强制转换为实际的枚举类型。在你的情况下:
permission.Permissions.Add((PagePermission)Enum.Parse(typeof(PagePermission), a);
否则,您要将object
添加到PagePermission
列表中,这会导致您出现错误。