Можно ли объединить хеш-коды для закрытых членов, чтобы создать новый хеш-код?

У меня есть объект, для которого я хочу создать уникальный хеш (переопределить GetHashCode ()), но я хочу избежать переполнения или чего-то непредсказуемого.

Код должен быть результатом объединения хеш-кодов небольшой коллекции строк.

Хеш-коды будут частью генерации ключа кеша, поэтому в идеале они должны быть уникальными, однако число возможных значений, которые хэшируются, невелико, так что я думаю, что вероятность в мою пользу здесь.

Будет ли что-то вроде этого достаточно И есть ли лучший способ сделать это?

int hash = 0;
foreach(string item in collection){
    hash += (item.GetHashCode() / collection.Count)
}
return hash;

РЕДАКТИРОВАТЬ: Спасибо за ответы до сих пор. @ Джон Скит: Нет, порядок не важен

Я предполагаю, что это почти другой вопрос, но поскольку я использую результат для генерации ключа кэша (строки), имеет ли смысл использовать криптографическую хеш-функцию, такую как MD5, или просто использовать строковое представление этого int?

Ответы на вопрос(4)

Ваш ответ на вопрос