title: List<T>.Distinct() in C# - multiple criteria for EqualityComparer?
body: <p>I have a collection of objects which have several properties in each of them.  I often need to get a list of distinct values for many properties in this collection. If I implement IEqualityComparer on this type , it gives me one single criteria for getting the distinct objects in the collection. How do I get to be able to call Distinct on multiple criteria for this collection ?</p>
  
  <p>For example ,</p>
  
  <pre><code>  class Product {
      string name ;
      string code ;
      string supplier ;
  //etc 
  }
  </code></pre>
  
  <p>Imagine a list of such product objects.
  Sometimes , I want to get list of distinct names in the list , and at some oter time , a list of distinct supplier . etc. 
  If I call Distinct on a list of these products , based on the way IEqualityComparer is implemented , it will always use the same criteria , which is not going to serve my purpose.</p>