如何将字符串数组转换为枚举?

时间:2016-11-02 07:19:50

标签: c#

如何将字符串数组转换为枚举? 以下代码提供了关于预期内容的基本概念,

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 );
}

2 个答案:

答案 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列表中,这会导致您出现错误。