2014-08-29 2 views
2

Как я могу добиться этогоВыбрать выберите запрос

Моего первого список

List<string> lstParams = new List<string> { "Home", "Computer", "Fishing" }; 
List<string> lstIgnore_If_Have = new List<string> { "me", "hi" }; 

Теперь я хочу, чтобы проверить lstParams каждый элемент, и если элемент имеет какой-либо объект lstIgnore_If_Have не выбрать его.

Результат lstParams будет ниже

"Компьютер"

Как написать такой запрос Linq?

я сделал ниже, но я не могу завершить это

lstParams = lstParams 
    .Where(pr => pr.Contains(lstIgnore_If_Have)) == false).ToList<string>(); 

ответ

7

Здесь вы идете:

var v = lstParams.Where (p => ! lstIgnore_If_Have.Any(i=> p.Contains(i))); 

просто убедитесь, что ни один из второго списка не содержится в первой (с использованием Any).
В результате получается «Компьютер».

1

Вы могли бы использовать:

lstParams = lstParams.Where(x => lstIgnore_If_Have.All(s => !x.Contains(s))) 
        .ToList(); 
Смежные вопросы