У меня есть следующее:
Expression<Func<Car, int>> myExpr = car => car.Wheel.Tyre.Pressure;
Я хочу удалить параметр и сделать первый член параметром для подвыражения, поэтому я получаю:
Expression<Func<Wheel, int>> mySubExpr = wheel => wheel.Tyre.Pressure;
Это должно работать для любого дерева выражений вышеуказанного формата, включая MemberExpression
, MethodCallExpression
и любое другое Expression
, которое имеет свойство .Expression
. Например:
Expression<Func<Car, int>> myOtherExpr = car => car.GetRearLeftWheel().GetTyre().Pressure
или
Expression<Func<Car, int>> anotherExpr = car => car.Wheel.GetTyre().GetPressure();
Как бы я достиг этого элегантно?
Спасибо
Andrew