title: split a list using linq
body: <p>I've the following code:</p>
  
  <pre><code>  var e = someList.GetEnumerator();
    var a = new List&lt;Foo&gt;();
    var b = new List&lt;Foo&gt;();
    while(e.MoveNext())  {
       if(CheckCondition(e.Current)) {
           b.Add(e.Current);
           break;
       }
       a.Add(e.Current);
   }
  
  while(e.MoveNext())
    b.Add(e.Current)
  </code></pre>
  
  <p>This looks ugly.  Basically, iterate through a list and add elements to one list until some condition kicks in, and add the rest to another list. </p>
  
  <p>Is there a better way e.g. using linq ? CheckCondition() is expensive, and the lists can be huge so I'd prefer to not do anything that iterates the lists twice.</p>