为了账号安全,请及时绑定邮箱和手机立即绑定

如何判断用户是否不包含角色

如何判断用户是否不包含角色

C#
qq_花开花谢_0 2023-08-20 15:16:29
我正在 Discord BOT 中处理一些新命令,并且试图确定具有管理员角色的用户和具有创始人和管理员角色的用户之间的区别。如果用户角色仅包含管理员而不包含创始人,则它们被归类为“CheckUserIsAdminOnly”。我使用下面的代码当前检查命令的用户是否是管理员,因此我现在尝试对此进行调整以说明用户是否具有“管理员”角色但不包含“创始人”角色。我觉得我在这里错过了一些简单的东西,但我无法弄清楚我的错误return (fullContextUser.Roles.Where(x => x.Name == "Admin" || x.Name == "Head Recruiter" && x.Name != "Founder").Count() > 0);当用户具有名为“Admin”和“Founder”的角色时,此代码仍然返回 true
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

Roles是角色列表。您不能仅通过查看各个角色及其姓名来对列表做出声明。


中的表达式Where将应用于列表中的每个单独角色。


检查角色是否存在,然后合并该信息。


bool hasAdminRole = fullContextUser.Roles.Any(x => x.Name == "Admin");

bool hasFounderRole = fullContextUser.Roles.Any(x => x.Name == "Founder");


bool isAdminButNotFounder = hasAdminRole && !hasFounderRole;


查看完整回答
反对 回复 2023-08-20
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你缺少括号:


return (fullContextUser.Roles.Where(x => 

(x.Name == "Admin" || 

x.Name == "Head Recruiter") && 

x.Name != "Founder").Count() > 0);


查看完整回答
反对 回复 2023-08-20
  • 2 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信