title: Filtering lists using LINQ
body: <p>I've got a list of People that are returned from an external app and I'm creating an exclusion list in my local app to give me the option of manually removing people from the list.  </p>
  
  <p>I have a composite key which I have created that is common to both and I want to find an efficient way of removing people from my List using my List </p>
  
  <p>e.g </p>
  
  <pre><code>class Person
  {
      prop string compositeKey { get; set; }
  }
  
  class Exclusions
  {
      prop string compositeKey { get; set; }
  }
  
  List&lt;Person&gt; people = GetFromDB;
  
  List&lt;Exclusions&gt; exclusions = GetFromOtherDB;
  
  List&lt;Person&gt; filteredResults = People - exclustions using the composite key as a comparer
  </code></pre>
  
  <p>I thought LINQ was the ideal way of doing this but after trying joins, extension methods, using yields, etc. I'm still having trouble. </p>
  
  <p>If this were SQL I would use a <code>not in (?,?,?)</code> query.</p>