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[]
。我已经更新了我的答案。