Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
成员';无法使用实例引用访问object.equals(object?、object?');请在列表删除c#中的字符串上使用名称对其进行质量评定?_C#_String_List_Removeall_Remove - Fatal编程技术网

成员';无法使用实例引用访问object.equals(object?、object?');请在列表删除c#中的字符串上使用名称对其进行质量评定?

成员';无法使用实例引用访问object.equals(object?、object?');请在列表删除c#中的字符串上使用名称对其进行质量评定?,c#,string,list,removeall,remove,C#,String,List,Removeall,Remove,我有一个名为genres的列表,我正在尝试删除用户将添加到其中的一个类型,不管大小写如何。我在代码中进一步指定了一个名为“genre”的字符串变量,但当我尝试执行RemoveAll()命令时,我得到了CS0176。下面是一些正在播放的代码: [命令(“RemoveGenre”)] [说明(“从流派列表中删除流派”)] 公共异步任务删除(CommandContext ctx,字符串类型) { if(genres.Contains(genre,StringComparer.OrdinalIgnore

我有一个名为genres的列表,我正在尝试删除用户将添加到其中的一个类型,不管大小写如何。我在代码中进一步指定了一个名为“genre”的字符串变量,但当我尝试执行RemoveAll()命令时,我得到了CS0176。下面是一些正在播放的代码:

[命令(“RemoveGenre”)]
[说明(“从流派列表中删除流派”)]
公共异步任务删除(CommandContext ctx,字符串类型)
{
if(genres.Contains(genre,StringComparer.OrdinalIgnoreCase))
{
var message=wait ctx.RespondAsync($“您确定”+genre+“正确吗?”);
var yes=DiscordEmoji.FromName(ctx.Client,“:白色复选标记:”);
var no=DiscordEmoji.FromName(ctx.Client,“:x:”);
等待消息。CreateReactionSync(是);
等待消息。CreateReactionSync(否);
var interactivity=ctx.Client.GetInteractivity();
var reactionResult=wait interactivity.waitforreactionsync(x=>x.Message==Message,ctx.User,TimeSpan.FromSeconds(30)).configurewait(false);
而(!reactionResult.TimedOut)
{
if(reactionResult.Result.Emoji==yes)
{
RemoveAll(n=>n.Equals(genre,StringComparer.OrdinalIgnoreCase));
wait ctx.Channel.SendMessageAsync(“从列表中删除了“+genre+”。流派列表现在包含“+genres.Count.ToString()+”genres”)。configurewait(false);
打破
}
else if(reactionResult.Result.Emoji==否)
{
等待取消(ctx);
打破
}
其他的
{
等待ctx.Channel.SendMessageAsync($“请使用提供的表情符号。已取消”);
打破
}
}
}
其他的
{
wait ctx.Channel.SendMessageAsync(“列表中不存在此类型!未删除任何内容”)。configurewait(false);
}
}
产生错误的是“n.Equals”部分,我不知道为什么。另外,字符串列表的类型

如果有人能帮助我,那就太好了。提前谢谢!

试试这样:

if (reactionResult.Result.Emoji == yes)
{
     genres.RemoveAll(n => string.Equals(n, genre, StringComparison.OrdinalIgnoreCase));
     await ctx.Channel.SendMessageAsync("Removed " + genre + " from list. Genre list now contains " + genres.Count.ToString() + " genres").ConfigureAwait(false);
                    break;
}
检查.NETFiddle上的示例

编译器认为它正在使用
对象.Equals
来比较
类型
StringComparer.OrdinalingOrecase
值,而不是您期望它做的事情。

尝试如下:

if (reactionResult.Result.Emoji == yes)
{
     genres.RemoveAll(n => string.Equals(n, genre, StringComparison.OrdinalIgnoreCase));
     await ctx.Channel.SendMessageAsync("Removed " + genre + " from list. Genre list now contains " + genres.Count.ToString() + " genres").ConfigureAwait(false);
                    break;
}
检查.NETFiddle上的示例


编译器认为它正在使用
对象.Equals
来比较
类型
StringComparer.OrdinalingOrecase
值,而不是你期望它做什么。

类型的定义是什么?它是静态的吗?它不是静态的,是我在异步任务中设置的变量之一。“公共异步任务删除(CommandContext ctx,字符串类型)”。@Komsur:这就是为什么它有助于显示a-所以我们不需要猜测这类事情…同样地,我们不知道
类型的
。这是一个字符串列表。@Komsur:但是,如果你在a中显示,我们也不必问。你现在得到的更好(因为它显示了
类型
),但它仍然是不完整的,而且也不是最小的。请阅读以获得关于如何提出真正好的问题的建议。(这需要一些时间,但老实说,从长远来看是值得的。)“类型”的定义是什么?它是静态的吗?它不是静态的,是我在异步任务中设置的变量之一。”public async Task Remove(CommandContext ctx,string-genre)”。@Komsur:这就是为什么它有助于显示a-所以我们不需要猜测这类事情……同样,我们也不知道
类型
。这是一个字符串列表。@Komsur:但是,如果你在a中显示了这一点,我们就不用问了。你现在得到的更好(因为它显示了
类型
),但它仍然是不完整的,而且也不是最小的。请阅读以获取关于如何提出真正好的问题的建议。(这需要一些时间,但老实说,从长远来看是值得的。)这导致CS1503:“无法从System.StringComparer转换为System.StringComparation“.是的,我修复了它,现在应该可以正常工作了。您需要使用
StringComparison.OrdinalingOrecase
。还有一个网络小提琴来检查它。是的,修复了!我接受这个作为答案。谢谢!这导致CS1503:“无法从System.StringComparier转换为System.StringComparison”是的,我已经修好了,现在应该可以正常工作了。你需要使用
StringComparison.OrdinalingOrecase
。还有一个网络提琴来检查它。是的,修好了!我接受这个作为答案。谢谢!