У меня есть строка, которая идентифицирует клиента. На моем веб-сайте у меня есть 3 разных изображения для клиентов, которые не установили изображение профиля. Я хочу случайным образом связать одно из этих изображений с клиентом, но не менять изображение между сеансами.Использование GetHashCode() для случайного, постоянного индекса
Есть ли проблемы с использованием GetHashCode, как в следующем коде?
switch (CustomerIdString.GetHashCode() % 3)
{
case 0:
return "NoProfileImage0.png";
break;
case 1:
return "NoProfileImage1.png";
break;
case 2:
default:
return "NoProfileImage2.png";
break;
}
Я понимаю, есть и другие решения, такие как-
- Используйте лучше хэширования библиотеки
- Используйте идентификатор клиента в качестве семян в генераторе случайных чисел
- Persist имя изображения против записи клиента
, но мне нравится простота (без добавленных библиотек, без кода БД) нас GetHashCode().
Цель состоит в том, чтобы быть случайным среди пользователей, но в соответствии для каждого пользователя. – Spongeboy
Случайное не то слово, которое вы хотите; вы хотите выбрать дискретный элемент из набора, нет случайности. Я знаю, что это кажется нелепым, но ясно, что это важно в нашей отрасли. – Andy