【发布时间】:2011-10-12 01:52:41
【问题描述】:
我有以下成员角色枚举:
public enum RoleName
{
RegisteredUser,
Moderator,
Administrator,
Owner
}
我希望能够获取大于或等于给定角色的所有角色。
例如,我输入 Administrator,我得到一个带有 RoleName.Administration 和 RoleName.Owner 的 IEnumerable
类似的东西:
public static void AddUserToRole(string username, RoleName level)
{
var roles = Enum.GetValues(typeof(RoleName)).Cast<R>().ToList().Where(role => level > role);
foreach (var role in roles)
{
Roles.AddUserToRole(username, role);
}
}
【问题讨论】:
-
考虑到 enum 默认是 INT 类型,将值与过滤器 int 进行比较还不够吗?