Можно ли объединить хеш-коды для закрытых членов, чтобы создать новый хеш-код?
У меня есть объект, для которого я хочу создать уникальный хеш (переопределить GetHashCode ()), но я хочу избежать переполнения или чего-то непредсказуемого.
Код должен быть результатом объединения хеш-кодов небольшой коллекции строк.
Хеш-коды будут частью генерации ключа кеша, поэтому в идеале они должны быть уникальными, однако число возможных значений, которые хэшируются, невелико, так что я думаю, что вероятность в мою пользу здесь.
Будет ли что-то вроде этого достаточно И есть ли лучший способ сделать это?
int hash = 0;
foreach(string item in collection){
hash += (item.GetHashCode() / collection.Count)
}
return hash;
РЕДАКТИРОВАТЬ: Спасибо за ответы до сих пор. @ Джон Скит: Нет, порядок не важен
Я предполагаю, что это почти другой вопрос, но поскольку я использую результат для генерации ключа кэша (строки), имеет ли смысл использовать криптографическую хеш-функцию, такую как MD5, или просто использовать строковое представление этого int?