环顾四周,发现了许多类似的问题,但没有一个完全匹配。
public bool checkInvalid()
{
invalidMessage = filterWords.Any(s => appmessage.Contains(s));
return invalidMessage;
}
如果找到与列表中的字符串匹配的字符串,则将boolean invalidMessage设置为true。 在此之后,我希望能够将找到的每个字符串添加到列表中。有没有办法我可以使用.Contains()或者有人推荐我另一种方式来解决这个问题? 非常感谢。
答案 0 :(得分:0)
如果你想要的是获取filterWords
中appmessage
中包含的Where
中的字词,那么你可以使用var words = filterWords.Where(s => appmessage.Contains(s)).ToList();
:
```{r, echo=FALSE}
x <- rnorm(100, 0, 2)
a<- mean(x)
```
答案 1 :(得分: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)));