title: Remove items from list that intersect on property using Linq
body: <p>I have 2 lists of different objects (<code>foo</code> &amp; <code>bar</code>) that share the same property lets call it <code>id</code>. </p>
  
  <pre><code>public List&lt;foo&gt; foo { get; set; }
  public List&lt;bar&gt; bar { get; set; }
  </code></pre>
  
  <p>I want to remove all objects from <code>foo</code> that have an id that does not exist in <code>bar</code></p>
  
  <p>How can this be done in linq? I have been looking at <code>Intersect</code>, <code>RemoveAll</code> &amp; <code>Join</code> but cannot find any example where the lists are of a different type.</p>