我有以下代码,其中变量userRoles是一个字符串数组,可以包含或者全部包含“Super”,“Admin”,“User”或“Guest”。
public static RoleType GetMaxRole()
{
var userRoles = Roles.GetRolesForUser();
// var maxRole = userRoles.Max();
if userRoles.Contains("Super")
return RoleType.Super;
if userRoles.Contains("Admin")
return RoleType.Admin;
if userRoles.Contains("User")
return RoleType.User;
if userRoles.Contains("Guest")
return RoleType.Guest;
return RoleType.Default;
}
这是我正在使用的枚举:
public enum RoleType
{
Default = 10,
Guest = 20,
User = 30,
Admin = 40,
Super = 50
}
有没有一种方法可以在没有多个if语句的情况下实现相同的目标。有些方法我可以根据Enum检查userRoles数组吗?
答案 0 :(得分:2)
public static RoleType GetMaxRole()
{
var userRoles = Roles.GetRolesForUser();
var maxRole = userRoles.Max(x => (RoleType)Enum.Parse(typeof(RoleType), x));
return maxRole;
}