2016-04-14 24 views
0

は周りを見ていて、多くの同様の質問が見つかりましたが、一致するものはありません。リスト内の文字列が文字列内にある場合、リストに追加してください

public bool checkInvalid() 
    { 
     invalidMessage = filterWords.Any(s => appmessage.Contains(s)); 
     return invalidMessage; 
    } 

リスト内の文字列と一致する文字列が見つかった場合、boolean invalidMessageはtrueに設定されます。 これ以降は、見つかった各文字列をリストに追加できるようにしたいと考えています。 .Contains()を使ってこれを行う方法があるのですか、誰かがこれについて別の方法で私に勧めてくれますか? 多くのありがとうございます。

答えて

0

さて、あなたの説明から、私はここで考えて何をしたいです:

// Set of filtered words 
string[] filterWords = {"AAA", "BBB", "EEE"}; 

// The app message 
string appMessage = "AAA CCC BBB DDD"; 

// The list contains filtered words from the app message 
List<string> result = new List<string>(); 

// Normally, here is what you do 
// 1. With each word in the filtered words set 
foreach (string word in filterWords) 
{ 
    // Check if it exists in the app message 
    if (appMessage.Contains(word)) 
    { 
     // If it does, add to the list 
     result.Add(word); 
    } 
} 

あなたが言ったように、あなたはLINQを使いたいので、ループの代わりに次のようにすることができます:

// If you want to use LINQ, here is the way 
result.AddRange(filterWords.Where(word => appMessage.Contains(word))); 
+0

ちょうど私が感謝のために探していたもの! :) –

0

何をしたいことにある場合appmessageに含まれているfilterWordsの単語あなたがWhereを使用することができます:

var words = filterWords.Where(s => appmessage.Contains(s)).ToList(); 
関連する問題