Я пытаюсь понять разницу между двумя перегрузками метода Enumerable.Except
, т.е.
- За исключением (IEnumerable, IEnumerable)
- За исключением (IEnumerable, IEnumerable, IEqualityComparer)
Очевидно, первое отличие заключается в том, что первая перегрузка использует компаратор проверки на равенство по умолчанию, а другая использует IEqualityComparer, но я могу добиться того же результата с помощью первого метода, реализуя IEquatable (как указано в документации MSDN по методу Except
), то зачем нужна эта вторая перегрузка?
IEquatable
по какой-то причине (например, если это не ваш класс), но все же хотите использовать собственный компаратор. - person Andy Korneyev   schedule 11.12.2014IEnuemrable<SomeThirdPartyClass>
, но не можете изменитьSomeThirdPartyClass
, тогда вы должны использовать вторую перегрузку. - person Ben Robinson   schedule 11.12.2014Except
. - person code4life   schedule 11.12.2014