title: LINQ: RemoveAll and get elements removed
body: <p>Which is the easiest way to remove items that match some condition from a list and then, get those items.</p>
  
  <p>I can think in a few ways, I don't know which is the best one:</p>
  
  <pre><code>var subList = list.Where(x =&gt; x.Condition);
  list.RemoveAll(x =&gt; x.Condition);
  </code></pre>
  
  <p>or</p>
  
  <pre><code>var subList = list.Where(x =&gt; x.Condition);
  list.RemoveAll(x =&gt; subList.Contains(x));
  </code></pre>
  
  <p>Is any of this one of the best ways? If it is, which one? If it's not, how should I do it?</p>