因此,我正在尝试检查文本文件的内容,以查看列表textwords
中包含的任何值是否存在于文本文件中。
但是,当代码执行时,它始终认为该消息不包含textwords
列表中包含的任何字符串。
使用的代码如下。
对此的任何帮助将不胜感激。
List<string> textwords = new List<string>();
using (var UnacceptableWords = new StreamReader("fileLocation"))
{
while (!UnacceptableWords.EndOfStream)
{
string[] row = UnacceptableWords.ReadLine().Split(',');
string Column1 = row[0];
textwords.Add(Column1);
}
}
directory = new DirectoryInfo("filelocation");
files = directory.GetFiles("*.txt");
foreach (FileInfo file in files)
{
using(StreamReader Message = new StreamReader(file.FullName))
{
string MessageContents = Message.ReadToEnd();
if(MessageContents.Contains(textwords.ToString()))
{
MessageBox.Show("found a word");
}
MessageBox.Show("message clean");
}
}
答案 0 :(得分:2)
string.Cointains()
方法接受一个字符串,但您将List
传递给它,您已将其转换为字符串。
List.ToString()!= List中包含的值作为字符串
要做到这一点,你必须遍历数组并一次传递它的每个元素
foreach(string keyword in textwords)
{
if(MessageContents.Contains(keyword))
{
MessageBox.Show("found a word");
break;
}
}