Я подозреваю, что вы хотите PredicateBuilder
. (Источник доступен на этой странице.) Вы бы использовали его так:
var predicate = q => !q.Hidden;
if (!string.IsNullOrWhiteSpace(searchToken))
{
predicate = predicate.And(q => q.Name.ToUpper()
.Contains(searchToken.ToUpper());
}
return predicate;
Это предполагает, что вы хотите "и" условия - вы никогда не давали этого ясно ...
Обратите внимание, что это , а не - это также хороший способ сравнения без учета регистра. Если бы вы могли сообщить нам, что будет потреблять запрос (например, LINQ to SQL, LINQ to EF), мы могли бы предложить совместимый с поставщиком способ выполнения запроса без учета регистра.