title: List(T) RemoveAll() not working as intended...?
body: <p>Let's say I have a list of User objects with two properties...ID and Name</p>
  
  <pre><code>List&lt;User&gt; lst = List&lt;User&gt;();
  </code></pre>
  
  <p>I fill it up with a bunch of Users.  Ok, now I want to trim my list using RemoveAll() and this function.</p>
  
  <pre><code>private Boolean IsExisting(int id) {
  //blah blah
  return true;
  //blah blah
  return false;
  }
  </code></pre>
  
  <p>So I use this statement:</p>
  
  <pre><code>gdvFoo.DataSource = lst.RemoveAll(t =&gt; IsExisting(t.ID));
  </code></pre>
  
  <p>It is my understanding that whenever IsExisting returns true that element should be removed from lst, but what happens, strangely enough, is it returns an integer?, not a truncated list and I received the following error message:</p>
  
  <blockquote>
    <p>Data source is an invalid type.  It must be either an IListSource, IEnumerable, or IDataSource.></p>
  </blockquote>