Объединить два выражения вместе? - PullRequest
0 голосов
/ 08 марта 2019

Я создаю приложение для перевода строки в лямбда-выражение. Например, если на входе есть строка типа "c.id>7 && c.grade<5", я должен перевести ее на c=>c.id>7 && c.grade<5; если в качестве ввода используется строка типа "c.id>7 && u.grade<5", я должен перевести ее на (c,u)=>c.id>7 && u.grade<5.

Я создал приложение для распознавания строки "c.id>7 && c.grade<5" и перевода ее в два выражения c=>c.id>7 и c=>c.grade<5. Но когда я пытаюсь объединить два выражения вместе, как показано ниже:

// expression1 is c=>c.id>7, expression1 is return by method Expression.Lambda
// expression2 is c=>c.grade<5 or u.grade<5, expression2 is return by method Expression.Lambda
Expression.AndAlso(expression1, expression2);

Система сказала

there is no binary opertor AndAlso between System.Func`2[Test.user, System.Boolean] and System.Func`2[Test.user, System.Boolean]

Так, кто может помочь мне объединить два выражения вместе, спасибо!

пс:

// expression1 and expression2 is built like below    
Expression expression = Expression.Lambda(Expression.AndAlso(leftExpression, rightExpression), parameterExpressions.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...