title: Can I split an IEnumerable into two by a boolean criteria without two queries?
body: <p>Can I split an <code>IEnumerable&lt;T&gt;</code> into two <code>IEnumerable&lt;T&gt;</code> using LINQ and only a single query/LINQ statement?  </p>
  
  <p>I want to avoid iterating through the <code>IEnumerable&lt;T&gt;</code> twice.  For example, is it possible to combine the last two statements below so allValues is only traversed once?</p>
  
  <pre><code>IEnumerable&lt;MyObj&gt; allValues = ...
  List&lt;MyObj&gt; trues = allValues.Where( val =&gt; val.SomeProp ).ToList();
  List&lt;MyObj&gt; falses = allValues.Where( val =&gt; !val.SomeProp ).ToList();
  </code></pre>