Короткий вопросхеширования массив в C#
Как реализовать GetHashCode
для Array
.
Подробности
У меня есть объект, который переопределяет Equals
, проверяя, что:
this.array[n] == otherObject.array[n]
для всех n
в array
.
Естественно, я должен реализовать дополнительные GetHashCode
. мне было интересно, если есть .NET способ сделать это, или если я должен реализовать свое собственное, что-то вроде
hash = hash^array[n]
Разъяснения
Моего объекта содержит массив, и я заинтересован в GetHashCode для элементов массива. Например, мой код для эквивалентности массива - например, мой вопрос говорит, но, может быть, я был неясно, меня интересует GetHashCode
(не Equals
). Я говорю, что я, естественно, должен реализовать дополнительный GetHashCode
, потому что это требование .NET для реализации этого после того, как Equals
переопределено (для корректной работы Dictionary
и т. Д.). Благодарю.
Посмотрите на ответ, размещенный [здесь] (http://stackoverflow.com/a/7244729/833070). Другими словами, вам лучше реализовать свои собственные варианты или использовать другой инструмент, вы не можете использовать 'GetHashCode()' или 'Equals()' для массива – Draken
Почему бы не сделать this.array [n]. Equals (otherObject.array [n]) 'для' n'? –
Если вы хотите сравнить два массива для равенства, вы можете использовать расширение 'SequenceEqual' –