2017-02-20 28 views
0

所以,我一直在試圖爲我爲Discord創建的bot創建一個禁止的單詞列表,我一直在遇到麻煩,它不工作在所有。從禁止單詞列表的文本文件中讀取每行

這是我試過的代碼。

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!"); 
    } 
+0

它如何*不工作*?它會拋出異常還是不打印郵件? –

+0

文件內容如何對齊?單線是否與空間分開? –

回答

0

你問,如果未來在消息中包含整個banned_words列表,轉換爲字符串這可能是字面值「IEnumerable``String」或類似的表示字符串IEnumerable

您應該通過在同一時間在banned_words.txt文件各一個字符串,而不是看看,並檢查消息包含逐一時間:

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

好吧,我應該這樣做,有沒有辦法忽略區分大小寫? –

+0

是的,你可以指定一個不同的字符串比較:'if(e.Message.RawText.Contains(badWord,StringComparison.InvariantCultureIgnoreCase)){'' – Tim

0

添加到什麼蒂姆說,你可以通過簡單地比較兩個大寫字母使其不區分大小寫,例如

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