2017-01-21 5 views
0

У меня есть выражение, которое создается в классе. Он создается программно на основе конкретных требований. Пример такого выражения, которое сохраняется в переменной exp типа Expression<Func<Employee, bool>> является -LINQ - динамически вводить входной параметр

{ p2 => p2.name.Select((item, index) => new { item, index }).Any(p2.salary > 10000) } 

Я имею исходные данные в переменной empDetails типа List<Employee>. Я хочу выполнить вышеуказанное выражение exp на empDetails.

+0

Что вы хотите, как товар и индекс? Сотрудник и идентификатор? –

+0

@PrashanthBenny Мне нужен указатель. –

+0

Я думаю, вам нужно пересмотреть свое выражение, 1. вы не можете использовать логическое выражение в '.Any()', возможно '.Any (_ => p2.salary> 10000)' и ..., Пожалуйста, объясните, что ваше выражение должно делать? ;). –

ответ

0

Используемое выражение неверно, вы получаете ошибку времени компиляции, если попытаетесь ее написать.

В качестве примера я использую более простое выражение.

Expression<Func<Employee, bool>> ext = (p) => p.salary > 10000; 

list.Where(ext.Compile()); 

ext.Compile() преобразует выражение> в Func. то он может быть использован в любом методе, который принимает Func: Where, First, FirstOrDeafult, Single, SingleOrDeafult, Any, All ....

Смежные вопросы