如果列表中的字符串出现在字符串中,则添加到列表

时间:2016-04-14 16:44:36

标签: c# linq

环顾四周,发现了许多类似的问题,但没有一个完全匹配。

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

如果找到与列表中的字符串匹配的字符串,则将boolean invalidMessage设置为true。 在此之后,我希望能够将找到的每个字符串添加到列表中。有没有办法我可以使用.Contains()或者有人推荐我另一种方式来解决这个问题? 非常感谢。

2 个答案:

答案 0 :(得分:0)

如果你想要的是获取filterWordsappmessage中包含的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)));