我正在 Discord BOT 中處理一些新命令,并且試圖確定具有管理員角色的用戶和具有創(chuàng)始人和管理員角色的用戶之間的區(qū)別。如果用戶角色僅包含管理員而不包含創(chuàng)始人,則它們被歸類為“CheckUserIsAdminOnly”。我使用下面的代碼當(dāng)前檢查命令的用戶是否是管理員,因此我現(xiàn)在嘗試對(duì)此進(jìn)行調(diào)整以說明用戶是否具有“管理員”角色但不包含“創(chuàng)始人”角色。我覺得我在這里錯(cuò)過了一些簡(jiǎn)單的東西,但我無法弄清楚我的錯(cuò)誤return (fullContextUser.Roles.Where(x => x.Name == "Admin" || x.Name == "Head Recruiter" && x.Name != "Founder").Count() > 0);當(dāng)用戶具有名為“Admin”和“Founder”的角色時(shí),此代碼仍然返回 true
2 回答

慕森王
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
Roles是角色列表。您不能僅通過查看各個(gè)角色及其姓名來對(duì)列表做出聲明。
中的表達(dá)式Where將應(yīng)用于列表中的每個(gè)單獨(dú)角色。
檢查角色是否存在,然后合并該信息。
bool hasAdminRole = fullContextUser.Roles.Any(x => x.Name == "Admin");
bool hasFounderRole = fullContextUser.Roles.Any(x => x.Name == "Founder");
bool isAdminButNotFounder = hasAdminRole && !hasFounderRole;

天涯盡頭無女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
你缺少括號(hào):
return (fullContextUser.Roles.Where(x =>
(x.Name == "Admin" ||
x.Name == "Head Recruiter") &&
x.Name != "Founder").Count() > 0);
- 2 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)
0/150
提交
取消