Каковы технические причины разницы между 32-битной и 64-битной версиями string.GetHashCode ()?
Что еще более важно, почему 64-битная версия, кажется, завершает свой алгоритм, когда встречает символ NUL? Например, все следующие выражения возвращают истину при запуске в 64-битной среде CLR.
"\0123456789".GetHashCode() == "\0987654321".GetHashCode()
"\0AAAAAAAAA".GetHashCode() == "\0BBBBBBBBB".GetHashCode()
"\0The".GetHashCode() == "\0Game".GetHashCode()
Такое поведение (ошибка?) Проявляется как проблема производительности, когда мы использовали такие строки в качестве ключей в Словаре.