¿Cómo puedo combinar dos expresiones lambda en una usando un OR?Expresiones Lambda y cómo combinarlas?
He intentado el siguiente, pero su fusión me obliga a pasar parámetros en los Expression.Invoke llamadas, sin embargo quiero que el valor pasado en el nuevo lambda que se hace llegar a cada niño-lambda ..
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);
¿Alguna idea de cómo combinar dos expresiones lambda en una sola y que los argumentos de los lambdas secundarios sean los del padre?
Cuando dice "combinar", ¿qué es lo que realmente quiere que suceda? Diga que el argumento pasado es '7' -' func1' devolverá verdadero, y 'func2' devolverá falso. ¿Qué quieres que vuelva la combinación? –