Вопрос

Насколько я знаю, в C # нет прямого эквивалента. Моя текущая идея - использовать словарь с пользовательским IEqualityComparer, который проверяет равенство ссылок.

Однако это, похоже, теряет преимущество, получаемое хэшированием. Есть ли способ получить отдельный хэш-код из каждого другого объекта? Или это невозможно, и я должен использовать другой подход?

Это было полезно?

Решение

Вы можете использовать RuntimeHelpers.GetHashCode (объект) который вызывает object.GetHashCode () не виртуально - это эквивалент System.identityHashcode в Java. Я думаю, это то, что вы после. Так что ваш IEqualityComparer просто использовал бы это для хеширования и object.ReferenceEquals для равенства.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top