仅使用标准的英文字母和下划线,最多可以使用多少个字符而不会在哈希表/字典中引起潜在的冲突。
所以字符串像:
blur
Blur
b
Blur_The_Shades_Slightly_With_A_Tint_Of_Blue
...
最佳答案
不能保证您不会在单个字母之间发生冲突。
您可能不会,但未指定 string.GetHashCode
中使用的算法,并且可能会更改。 (特别是它在 .NET 1.1 和 .NET 2.0 之间发生了变化,这激怒了认为它不会发生变化的人。)
请注意,哈希码冲突不会阻止设计良好的哈希表工作——您仍然应该能够得到正确的值,它可能只需要使用相等性检查多个键,如果它们有相同的哈希码。
任何依赖哈希码唯一性的字典都缺少关于哈希码的重要信息,IMO :)(除非它在非常特定条件下运行,它绝对知道它们'将是唯一的,即它使用 perfect hash function 。)
关于c# - 哈希表/字典冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735317/