Как я могу объединить два лямбда-выражения в один, используя OR?
Я пробовал следующее, но для их слияния мне нужно передать параметры в вызовы Expression.Invoke, однако я хочу, чтобы значение, переданное в новую лямбду, передавалось на каждую дочернюю лямбда.
Expression<Func<int, bool>> func1 = (x) => x > 5;
Expression<Func<int, bool>> func2 = (x) => x < 0;
//Combines the lambdas but result in runtime error saying I need to pass in arguments
//However I want the argument passed into each child lambda to be whatever is passed into the new main lambda
Expression<Func<int, bool>> lambda = Expression.Lambda<Func<int, bool>>(Expression.Or(Expression.Invoke(func1), Expression.Invoke(func2)));
//The 9 should be passed into the new lambda and into both child lambdas
bool tst = lambda.Compile().Invoke(9);
Любые идеи о том, как объединить два лямбда-выражения в единицу и иметь аргументы дочернего lambdas как родительского?