我在做分词模块时,对每个词分配hashcode,但是发现其值并非唯一;
比如 "公出"和"古色"这两个词得到的值都是 6237203.
为什么会出现这样的问题呢,其实在MSDN里面有解释:
备注
GetHashCode 的行为取决于它的实现,此实现可能会从一个公共语言运行库版本更改为另一个版本。原因可能是为了提高 GetHashCode 的性能。如果要求 GetHashCode 的行为不变,请使用您自己的、确定不会改变的实现来重写 GetHashCode 的运行库实现。
没错就是因为他为了优化速度,所以使用了不同的算法,导致了同一值的出现,解决方案就如他说得,自己写一个固定算法了.
各位兄弟,以前如果用了这个方法,可就得改一改了.