Я хочу составить результаты двух выражений Linq. Они существуют в виде
Expression<Func<T, bool>>
Итак, два, которые я хочу составить, по сути являются делегатами для параметра (типа T), которые оба возвращают логическое значение. Результат, который я хотел бы составить, был бы логической оценкой логических значений. Я бы, вероятно, реализовал его как метод расширения, поэтому мой синтаксис будет выглядеть примерно так:
Expression<Func<User, bool>> expression1 = t => t.Name == "steve";
Expression<Func<User, bool>> expression2 = t => t.Age == 28;
Expression<Func<User, bool>> composedExpression = expression1.And(expression2);
А позже в своем коде я хочу оценить составленное выражение
var user = new User();
bool evaluated = composedExpression.Compile().Invoke(user);
Я возился с несколькими разными идеями, но боюсь, что это сложнее, чем я ожидал. Как это сделать?