title: How to change a type in an expression tree?
body: <p>I have a method like this:</p>
  <pre><code>private bool Method_1(Expression&lt;Func&lt;IPerson, bool&gt;&gt; expression)
  {
      /* Some code that will call Method_2 */
  }
  </code></pre>
  <p>In this method I want to change the <code>IPerson</code> type to another type. I want to call another method that looks like this:</p>
  <pre><code>private bool Method_2(Expression&lt;Func&lt;PersonData, bool&gt;&gt; expression)
  {
      /* Some code */
  }
  </code></pre>
  <p>So, in <code>method_1</code> I need to change <code>IPerson</code> to <code>PersonData</code>. How can I do this?</p>
  <p>Edit:</p>
  <p>When I call: <code>Method_1(p =&gt; p.Id == 1)</code> I want to 'save' the condition (<code>p.Id == 1</code>) but I want to execute this condition on another type, namely <code>IPerson</code>. So, I need to alter the expression or create a new expression with <code>IPerson</code></p>