如何避免 lambda 表达式中的 OR 条件

How to Avoid OR condition in lambda expression

我是 lambda 表达式的新手。我遇到了一个字符串类型列表,我必须在其中根据某些关键字进行查询。我可以使用多个 OR 条件,但这不是我想要的。

这是片段:

List<string> messageList = new List<string>(); 
//add some data to this list
.
.
//now query
var message = messageList.Where(x => x.Contains("SomeValue") && (x.Contains(value_1)) || (x.Contains(value_2))).ToList();

在上面的代码中,OR 列表可能会继续...

如果我在一个列表中有所有这些值(用于 OR),我们是否有一些通用的方法来避免这些 OR 条件并改为查询此列表

如能提供这方面的帮助,我们将不胜感激

您可以在单词列表中使用 Any 来检查:

var words = new [] {value_1, value_2, ...};

var message = messageList.Where(x => x.Contains("SomeValue") 
                                  && words.Any(w => x.Contains(w))
                         .ToList();