У меня проблемы с построением предикатов в цикле foreach. Переменная, содержащая текущее значение перечислителя, - это то, что мне нужно вставить в предикат.
Итак,
IQueryable query = getIQueryableSomehow();
Predicate = PredicateBuilder.False<SomeType>();
foreach (SomeOtherType t in inputEnumerable)
{
Predicate = Predicate.Or( x => x.ListInSomeType.Contains(t) )
}
var results = query.Where(Predicate);
меня подводит. Выражения, объединенные по ИЛИ в Predicate, в основном используют одно и то же t из inputEnumerable, хотя, конечно, я хочу, чтобы каждое выражение, объединенное с помощью OR в Predicate, использовало другое t из inputEnumerable.
Я посмотрел на предикат в отладчике после цикла, и он выглядит как IL. В любом случае каждая лямбда выглядит точно так же.
Кто-нибудь может сказать мне, что я здесь делаю не так?
Спасибо,
Исаак