У меня есть список n GUID, и мне нужно записать их в одно значение. Это значение может быть размером объекта Guid или размером Int32, это не имеет особого значения, но оно обязательно должно быть статистически уникальным (скажем, вероятно, похоже на MD5).Самый быстрый способ хеширования набора GUID
Таким образом, одним из подходов может быть их сортировка, объединение байтов и получение MD5-хэша всех байтов ... но это не очень быстро.
Еще одна идея. Я замечаю, что стандартная практика в .NET заключается в реализации метода GetHashCode композиционного объекта как XOR хэш-кодов скомпонованных объектов. Поэтому может ли это быть математически разумным для XOR моего списка GUID?
Любые идеи приветствуются!
Рефлектор говорит, что реализация Guid.GetHashCode(): return ((this._a^((this._b << 0x10) | ((ushort) this._c)))^((this._f << 0x18) | this._k)); Интересно, что он не использует всю доступную информацию. Полагаю, поэтому XORing GUIDs даст более уникальный результат. – 2008-11-18 15:20:08