title: c# lambda expression to remove items from a list based on given conditions in a different list
body: <p>Say I have an <code>IList&lt;int&gt; ProductIds</code> that I am passing to a very slow web service.  That call would look like this:</p>
  
  <pre><code>var WebServiceResponse = client.SomeCall(ProductIds);
  </code></pre>
  
  <p>The list of ints will contain all product IDs for a given page.</p>
  
  <p>I have another list, say <code>IList&lt;Product&gt;</code> where Product contains an <code>int ProductId</code> member property.  I want to call my web service, but before doing so I want to remove every item from ProductIds that has a Product in my other list with a matching ProductId.  Is there a one liner that can do this for me or do I have to run a loop?  I've tried all sorts of things but nothing compiles.  I'm still new to lambda expressions so hopefully this one is cake.</p>