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

本文关键字:转换 枚举 数组 字符串 | 更新日期: 2023-09-27 18:15:50

如何将字符串数组转换为enum?下面的代码给出了一个关于期望的基本概念,

permission.Permissions.Add(Enum.Parse(typeof(PagePermission) ,a );
但是,它会抛出类似 的错误

不能将object转换为enum。

这里,PagePermission是enum。

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

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

使用

IEnumerable<myEnum> items = myArray.Select(a => (myEnum)Enum.Parse(typeof(myEnum), a));

Enum.Parse返回一个object,您需要将其强制转换为实际的enum类型。在你的例子中:

permission.Permissions.Add((PagePermission)Enum.Parse(typeof(PagePermission), a);

否则,您将在PagePermission列表中添加object,这将导致您所遇到的错误。