2011-05-01 48 views

回答

8

您可以使用string.GetHashCode来平衡哈希表。这就是它被设计用于的目的,这就是它应该被用来做的一切。

特别是,文档明确指出,在任何情况下都不应该将哈希码永久存储;字符串散列码算法允许在任何时候改变,事实上过去是这样做的。

+0

当使用这种方法时,该算法也可能在不同的机器上返回截然不同的结果。 – configurator 2011-05-01 14:48:26

1

从MSDN在Object.GetHashCode Method

的 的GetHashCode方法的默认实现不保证不同 对象 独特的返回值。此外,.NET Framework不保证 GetHashCode方法的默认实现,并且它的值将返回 不同版本的.NET Framework的相同值。因此,对于散列目的,此方法的默认实现不得使用 作为唯一对象标识符 。