I am trying to understand the difference between two overloads of Enumerable.Except
method i.e.
- Except(IEnumerable, IEnumerable)
- Except(IEnumerable, IEnumerable, IEqualityComparer)
Obviously, the first differnce is that the first overload uses the default equality comparer while the other uses an IEqualityComparer, but I can achieve the same result with first method, by implementing an IEquatable interface (as mentioned in the MSDN documentation of Except
method), then why this second overload is needed?