title: Build a Where clause using a loop and concatening each iterarion with an OR
body: <p>I have a list of N pairs of integers, e.g.:</p>
  
  <pre><code>2, 4
  5, 7
  9, 10
  11, 12
  </code></pre>
  
  <p>And I need to build a query like:</p>
  
  <pre><code>WHERE 
      (foo = 2 AND bar = 4) OR
      (foo = 5 AND bar = 7) OR
      (foo = 9 AND bar = 10) OR
      (foo = 11 AND bar = 12)
  </code></pre>
  
  <p>If it was a constant length list, I could write something like:</p>
  
  <pre><code>var query = myClass.Where(x =&gt;
      (foo == values[0][0] &amp;&amp; bar == values[0][1]) ||
      (foo == values[1][0] &amp;&amp; bar == values[1][1]) ||
      (foo == values[2][0] &amp;&amp; bar == values[2][1]) ||
      (foo == values[3][0] &amp;&amp; bar == values[3][1]));
  </code></pre>
  
  <p>But the length of the list varies, and I am looking for a way to create the query using a loop.</p>
  
  <p>I found I can use <code>Queryable.Union()</code> for a similar result, but considering there are more conditions in the query, and the list of pairs can be long, I would prefer to avoid the <em>union</em>.</p>
  
  <p>Is there any solution for this problem?</p>