Если предположить, что два словаря, один из которых является SortedList<TKey, TValue>
, а другой - Dictionary<TKey, TValue>
, сравниваются на равенство, должно ли действительно возвращаться значение true, если элементы одинаковы? Это было бы довольно плохо, так как они имеют разные характеристики и особенности (например, SortedList<,>
позволяет получать данные по индексу).
Кроме того, равенство и хэш-код логически связаны между собой. Хеш-код должен быть неизменным, иначе все алгоритмы, основанные на хэше, не будут работать. Вы не можете гарантировать это, когда используете содержимое для проверки на равенство. Следовательно, реализация по умолчанию (проверка того, являются ли они одним и тем же экземпляром) довольно разумна. Вы можете создать собственное сравнение равенства контента.