title: linq query with dynamic predicates in where clause joined by OR
body: <p>you can easily create dynamic queries in c# if you add more restrictions to the current query. </p>
  
  <pre><code>var list = new List&lt;Item&gt;();
  var q = list.AsQueryable();
  q = q.Where(x =&gt; x.Size == 3);
  q = q.Where(x =&gt; x.Color == "blue");
  </code></pre>
  
  <p>In this case, every new predicate is added performing an AND operation with the previous. The previous result is equivalent to:</p>
  
  <pre><code>q = list.Where(x =&gt; x.Size == 3 &amp;&amp; x.Color == "blue");
  </code></pre>
  
  <p>Is it possible to achieve the same result but with OR instead of AND?</p>
  
  <pre><code>q = list.Where(x =&gt; x.Size == 3 || x.Color == "blue");
  </code></pre>
  
  <p>The idea is to have a variable number of expressions that are joined with OR operator.</p>
  
  <p>Expected result would need to be written in some how similar to the following pseudo code:</p>
  
  <pre><code>var conditions = new List&lt;Func&lt;Item, bool&gt;&gt;();
  </code></pre>
  
  <p>And later iterate conditions to build something like:</p>
  
  <pre><code>foreach(var condition in conditions)
      finalExpression += finalExpression || condition;
  </code></pre>