title: Selectively remove from where clause in LINQ expression tree
body: <p>Starting with the following LINQ query:</p>
  
  <pre><code>from a in things  
  where a.Id == b.Id &amp;&amp;  
  a.Name == b.Name &amp;&amp;  
  a.Value1 == b.Value1 &amp;&amp;  
  a.Value2 == b.Value2 &amp;&amp;  
  a.Value3 == b.Value3  
  select a;
  </code></pre>
  
  <p>How can I remove (at runtime) one or more of the conditions in the where clause in order to obtain queries similar to the following ones:</p>
  
  <pre><code>from a in things  
  where a.Id == b.Id &amp;&amp;  
  a.Name == b.Name &amp;&amp;  
  a.Value2 == b.Value2 &amp;&amp;  
  a.Value3 == b.Value3  
  select a;
  </code></pre>
  
  <p>Or</p>
  
  <pre><code>from a in things  
  where 
  a.Name == b.Name &amp;&amp;  
  a.Value3 == b.Value3  
  select a;
  </code></pre>