Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串数组转换为枚举?_C# - Fatal编程技术网

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

C# 如何将字符串数组转换为枚举?,c#,C#,如何将字符串数组转换为枚举? 下面的代码给出了预期的基本概念 permission.Permissions.Add(Enum.Parse(typeof(PagePermission) ,a ); 但是,它会抛出一个错误,如 无法将对象转换为枚举 这里,PagePermission是枚举 string pagePermission = "View,Edit"; string[] permissions = pagePermission.Split(','); permission.Permiss

如何将字符串数组转换为枚举? 下面的代码给出了预期的基本概念

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 );
}
string pagePermission=“查看,编辑”;
string[]permissions=pagePermission.Split(',');
permission.Permissions=新列表();
for(int i=0;i
使用

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

Enum.Parse
返回一个
对象
,您需要将其强制转换为实际的枚举类型。在您的情况下:

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

否则,您将在
页面权限列表中添加
对象
,这将导致您出现错误。

在询问有关StackOverflow的问题时,请始终复制/粘贴异常的确切消息。从错误消息的确切措辞可以推断出很多信息。请添加PagePermi声明Session enum.public enum PagePermission{View=1,Edit=2}确切的异常消息:无法从'object'转换为'PagePermission'枚举。@GoralPetel这是我在
enum.Parse(typeof(PagePermission),a)
之前添加的
(PagePermission)
位。它用于告诉“我知道这个对象是一个页面许可,所以把它看作是这样的”
permission.Permissions.Add((PagePermission)Enum.Parse(typeof(PagePermission), a);