从文本文件中读取每一行以获取禁用词列表

Reading each line from a text file for a banned word list

所以,我一直在尝试为我为 Discord 创建的机器人创建一个禁用词列表,但我 运行 遇到了它根本不起作用的麻烦。

这是我试过的代码。

public static string fileName1 = "banned_words.txt";
if (e.Message.RawText.Contains(File.ReadLines(fileName1).ToString()))
  {
    e.Message.Delete();
    Console.WriteLine(e.User.Name + " said " + e.Message.RawText.Clone());
    e.Channel.SendMessage(e.User.Mention + " Please do not use that language!");
  }

您问的是传入的消息是否包含整个 banned_words 列表作为字符串的 IEnumerable 转换为可能是字面值“IEnumerable``String”或类似字符串的字符串表示。

您应该一次一个地查看 banned_words.txt 文件中的每个字符串,并一次一个地检查邮件是否包含它们:

foreach (string badWord in File.ReadLines(fileName1)) {
    if (e.Message.RawText.Contains(badWord)) {
        //Do stuff
    }
}

除了蒂姆所说的,您可以通过简单地比较两个大写单词来使其不区分大小写,例如

foreach (string badWord in File.ReadLines(fileName1)) {
if (e.Message.RawText.ToUpper().Contains(badWord.ToUpper())) {
    //Do stuff
}