對於C++,我一直使用Boost.Functional/Hash創建良好的散列值,而不必處理位移,XOR和素數。是否有任何庫爲C#/ .NET生成良好的(我不求最佳)哈希值?我將使用此實用程序來實現GetHashCode(),而不是加密哈希。爲.NET創建「良好」散列碼ala Boost.Functional/Hash
解釋,爲什麼我覺得這是非常有用的,這裏是它結合了(實現GetHashCode()方法時ofcourse一個非常常見的操作)的散列值boost::hash_combine
實現:
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
顯然,這種代碼沒有按不屬於執行GetHashCode()
,因此應該在其他地方實施。
你如何定義好散列?出於什麼目的?你爲什麼不喜歡'GetHashCode()'? – CodesInChaos
我認爲你誤解了OP。他希望有一些像Boost.Functional/Hash *在'GetHashCode' *中使用它! –
相關:http://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-system-object-gethashcode – CodesInChaos