Я хочу составить результаты двух выражений 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);
Я размышлял с несколькими разными идеями, но я боюсь, что это сложнее, чем я надеялся. Как это делается?