Добавление вызова метода к выражению Linq, оставаясь при этом полным выражением

Как я могу расширить выражение linq, сохраняя при этом выражение? Я'мы немного упростили это (чтобы не вставлять страницы) - например, я работаю с Queryable, а не с Enumerable, но решения для этого будет достаточно, в конечном счете мне нужно сохранить его как выражение при добавлении вызова метода.

Например ЛИ

        var p1 = new Person() {Name = "RDA1", Age = 27};
        var p2 = new Person() {Name = "RDA2", Age = 28};
        var p3 = new Person() {Name = "RDA3", Age = 29};

        var people = new[] {p1, p2, p3};


        Expression filterExp
            = list => list.Take(2);


        Expression sortExp = l => l.Age;


        MethodCallExpression orderByCallExpression = Expression.Call(
            typeof (Enumerable),
            "OrderByDescending",
            new Type[] {typeof (Person), typeof (int)},
            filterExp.Parameters[0],
            sortExp); 

var combinedExpression = Expression.Lambda
(filterExp.AddMethodCall(orderByCallExpression)); // made up AddMethodCall but you get the idea

за последние несколько часов я искал десятки сообщений SO, и я могуКажется, я не могу этого понять, я могу сделать это, если скомпилирую filterExp, но не без сохранения как выражений, так и конечного результата.

Ответы на вопрос(1)

Ваш ответ на вопрос