根据List <string>

时间:2016-04-07 09:57:15

标签: c# list filereader

因此,我正在尝试检查文本文件的内容,以查看列表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");
            }
        }

1 个答案:

答案 0 :(得分:2)

string.Cointains()方法接受一个字符串,但您将List传递给它,您已将其转换为字符串。

List.ToString()!= List中包含的值作为字符串

要做到这一点,你必须遍历数组并一次传递它的每个元素

foreach(string keyword in textwords)
{
    if(MessageContents.Contains(keyword))
    {
         MessageBox.Show("found a word");
         break;
    }
}