2016-04-07 8 views
2

したがって、テキストファイルの内容をチェックして、リストtextwordsに含まれる値がテキストファイル内に存在するかどうかを確認しようとしています。リストとテキストファイルの内容を確認する<string>

しかし、コードを実行すると、メッセージには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"); 
      } 
     } 

答えて

2

string.Cointains()方法は、文字列になりますが、あなたはそれにあなたが文字列になっているListを、渡しています。

時List.ToString()!=これを行うには、文字列

として一覧に含まれる値を使用して、配列を反復処理し、それの各要素を通過しなければならない

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

いや、あなたは元の質問と同じミスをしています。あなたはそれを複数回やっているだけです。テストは 'if(MessageContents.Contains(keyword))' – derpirscher

+0

ああ申し訳ありませんが、私の間違いは、私がコピーしたifと忘れてしまったので、今編集します。 それを指摘してくれてありがとう、それは私の元の意図でした –

+1

私はこれを行うことができませんでしたか? –

関連する問題