0
我想裝入一組對象,特別是帶有x和y值的點類型,以便可以計算點集中存在的每個x,y對的點數。 x和y的最大值是[-1000,1000],因此很容易爲每個可能的點生成唯一的哈希碼。用於裝箱的C#GetHashCode
對於實際的裝箱過程,可以使用字典來完成。當我向字典中添加/查找點時,GetHashCode是否會用於此目的?
有沒有更好的方法來分箱?
我想裝入一組對象,特別是帶有x和y值的點類型,以便可以計算點集中存在的每個x,y對的點數。 x和y的最大值是[-1000,1000],因此很容易爲每個可能的點生成唯一的哈希碼。用於裝箱的C#GetHashCode
對於實際的裝箱過程,可以使用字典來完成。當我向字典中添加/查找點時,GetHashCode是否會用於此目的?
有沒有更好的方法來分箱?
是,除非你傳遞一個自定義實例提供的散列碼,當你構建Dictionary
實例檢查平等,將用於GetHashCode
和Equals
你的類型的方法。
爲了提供您的自定義哈希機制,您可以簡單地覆蓋GetHashCode
和Equals
。
謝謝,這工作!這樣簡單的事情可以超級有用! – user623879
沒問題。重寫GetHashCode()返回x + 1000 * y並使用'字典' –