我正在 Discord BOT 中處理一些新命令,并且試圖確定具有管理員角色的用戶和具有創(chuàng)始人和管理員角色的用戶之間的區(qū)別。如果用戶角色僅包含管理員而不包含創(chuàng)始人,則它們被歸類為“CheckUserIsAdminOnly”。我使用下面的代碼當前檢查命令的用戶是否是管理員,因此我現(xiàn)在嘗試對此進行調(diào)整以說明用戶是否具有“管理員”角色但不包含“創(chuàng)始人”角色。我覺得我在這里錯過了一些簡單的東西,但我無法弄清楚我的錯誤return (fullContextUser.Roles.Where(x => x.Name == "Admin" || x.Name == "Head Recruiter" && x.Name != "Founder").Count() > 0);當用戶具有名為“Admin”和“Founder”的角色時,此代碼仍然返回 true
2 回答
慕森王
TA貢獻1777條經(jīng)驗 獲得超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;
天涯盡頭無女友
TA貢獻1831條經(jīng)驗 獲得超9個贊
你缺少括號:
return (fullContextUser.Roles.Where(x =>
(x.Name == "Admin" ||
x.Name == "Head Recruiter") &&
x.Name != "Founder").Count() > 0);
- 2 回答
- 0 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消
