Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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#,以下代码为我的用户返回角色数组: var userRoles = Roles.GetRolesForUser(); 可能的角色包括: public enum RoleType { Default = 10, Guest = 20, User = 30, Admin = 40, Super = 50 } 如何使代码通过userRoles数组进行检查并返回最高的 它能找到的角色类型 var highestRole = userRoles.Max(); 做

以下代码为我的用户返回角色数组:

var userRoles = Roles.GetRolesForUser();
可能的角色包括:

public enum RoleType
{
    Default = 10,
    Guest = 20,
    User = 30,
    Admin = 40,
    Super = 50
}
如何使代码通过userRoles数组进行检查并返回最高的 它能找到的角色类型

var highestRole = userRoles.Max();
做你想做的事

(您需要使用System.Linq;在文件顶部添加
,才能工作)

更新1: 在线工作示例:

更新2:

上面的示例假设
userRoles
RoleType
值的数组

如果
userRoles
是一个表示角色类型的
string
s数组,那么我们需要首先解析这些值。代码现在变成:

var highestRole = userRoles
    .Select(r => Enum.Parse(typeof(RoleType), r))
    .Max();

在线工作示例:

这只是检查字符串名称和顺序,并给出最大值。它不考虑枚举的任何内容,也不返回枚举。@Anne我已经测试了代码,它工作正常。请查看“我的答案”的更新以获得一个工作示例。@Anne如果您仍然有问题,请让我查看您的代码;我们会让它工作的。@Anne我想我意识到问题是什么:
userRoles
是一个
string[]
我还以为它是一个
RoleType[]
。我已经更新了我的答案。