title: Enumerable.Except does not use my custom comparer
body: <p>I try to use the except method with a custom equality comparer, but it is not work.</p>
  
  <p>My equality comparer:</p>
  
  <pre><code>public class BusinessObjectGuidEqualityComparer&lt;T&gt; : IEqualityComparer&lt;T&gt; where T : BusinessObject
  {
      #region IEqualityComparer&lt;T&gt; Members
  
      /// &lt;summary&gt;
      /// Determines whether the specified objects are equal.
      /// &lt;/summary&gt;
      /// &lt;param name="x"&gt;The first object of type &lt;paramref name="T"/&gt; to compare.&lt;/param&gt;
      /// &lt;param name="y"&gt;The second object of type &lt;paramref name="T"/&gt; to compare.&lt;/param&gt;
      /// &lt;returns&gt;
      /// &lt;see langword="true"/&gt; If the specified objects are equal; otherwise, &lt;see langword="false"/&gt;.
      /// &lt;/returns&gt;
      public bool Equals(T x, T y)
      {
          return (x == null &amp;&amp; y == null) || (x != null &amp;&amp; y != null &amp;&amp; x.Guid.Equals(y.Guid)); 
      }
  
      /// &lt;summary&gt;
      /// Returns a hash code for this instance.
      /// &lt;/summary&gt;
      /// &lt;param name="obj"&gt;The object to get the hash code.&lt;/param&gt;
      /// &lt;returns&gt;
      /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
      /// &lt;/returns&gt;
      /// &lt;exception cref="T:System.ArgumentNullException"&gt;
      /// The type of &lt;paramref name="obj"/&gt; is a reference type and &lt;paramref name="obj"/&gt; is null.
      /// &lt;/exception&gt;
      public int GetHashCode(T obj)
      {
          if (obj == null)
          {
              throw new ArgumentNullException("obj");
          }
  
          return obj.GetHashCode();
      }
  
      #endregion
  }
  </code></pre>
  
  <p>My except usage:</p>
  
  <pre><code>BusinessObjectGuidEqualityComparer&lt;Area&gt; comparer = new BusinessObjectGuidEqualityComparer&lt;Area&gt;();
  IEnumerable&lt;Area&gt; toRemove = this.Areas.Except(allocatedAreas, comparer);
  IEnumerable&lt;Area&gt; toAdd = allocatedAreas.Except(this.Areas, comparer);
  </code></pre>
  
  <p>The strange thing is, event I provide my custom equality comparer the default one is used, so what do I make wrong?</p>
  
  <p>Thanks for help.</p>