从文本文件中读取每一行以获取禁用词列表
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
}
所以,我一直在尝试为我为 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
}