2016-04-14 42 views
0

環顧四周,發現許多類似的問題,但沒有一個與我的完全匹配。如果列表中的字符串出現在字符串中,然後添加到列表

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

如果找到與列表中的字符串匹配的字符串,則布爾值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可以使用WherefilterWords的話:

var words = filterWords.Where(s => appmessage.Contains(s)).ToList(); 
相關問題