除版本库不同还有什么原因会影响String.GetHashCode() (C#)结果?

场景:

    设备的MAC(XX-XX-XX-XX-XX-XX).GetHashCode() 得到的int值,作为数据库主键的一部分(主键:IP + MAC.GetHashCode())。

现象

    MAC.GetHashCode()得到了不同的值,造成了同一个MAC设备,产生了两行以上的数据,无法唯一对应同一台设备配置。

版本库同为:.NET Framework 4。

除版本库不同还有什么原因会影响String.GetHashCode()的结果?

不同的目标平台(x86/x64)也影响String.GetHashCode()的结果。

对于相同的字符串,每次运行,得到的hashcode都不一样,不能用这个,你可以计算字符串的md5值作为hash,那个才是固定的。