Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “分配角色”命令无法处理包含多个单词的角色_C#_.net_Discord.net - Fatal编程技术网

C# “分配角色”命令无法处理包含多个单词的角色

C# “分配角色”命令无法处理包含多个单词的角色,c#,.net,discord.net,C#,.net,Discord.net,因此,这可以向其他用户添加角色,但如果角色有两个单词,则无法工作 { await Context.Channel.SendMessageAsync($"User already has this role"); } else { Context.Guild.Roles.FirstOrDe

因此,这可以向其他用户添加角色,但如果角色有两个单词,则无法工作

                {
                    await Context.Channel.SendMessageAsync($"User already has this role");
                }

                else
                {

                    Context.Guild.Roles.FirstOrDefault(x => x.Mention == "RoleName");
                    await (user as IGuildUser).AddRoleAsync(role);

                    await Context.Channel.SendMessageAsync($"{user.Mention} has been assigned {role}");
                }

Context.Guild.Roles.FirstOrDefault(x=>x.title==“RoleName”)

首先,您可能忘记为操作的返回结果分配
role

(或者您没有正确复制粘贴该部分。)

应该是

role = Context.Guild.Roles.FirstOrDefault(x => x.Mention == "RoleName")

您试图将角色名称与角色名称进行比较。
您应该与角色的属性进行比较,如下所示:

role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);
或者,您也可以与角色的ID进行比较,如下所示:

role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);
您只需使用
帮会的函数
,就可以进一步了解这一点,如下所示:

role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);

当角色有多个单词时,哪个部分不起作用?在任何情况下,您都不应该比较角色提及(
x.title
)。您可以比较角色名称或角色id。我发现我只需要将剩余部分添加到任务中