Как избежать ИЛИ условия в лямбда-выражении - PullRequest
0 голосов
/ 13 апреля 2020

Я новичок в лямбда-выражении. Я наткнулся на список типов строк, где я должен сделать запрос на основе определенных ключевых слов. Я могу использовать несколько условий ИЛИ, но это не так, как я хочу.

Вот фрагмент:

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();

В приведенном выше коде список ИЛИ может go на ...

Если у меня есть все эти значения (для использования в ИЛИ) в Списке, есть ли у нас какой-нибудь общий c способ избежать этих условий ИЛИ и запросить этот список вместо

Любой помощь в этом отношении будет оценена

1 Ответ

1 голос
/ 13 апреля 2020

Вы можете использовать Any в списке слов, чтобы проверить:

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

var message = messageList.Where(x => x.Contains("SomeValue") 
                                  && words.Any(w => x.Contains(w))
                         .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...