我有一个标识客户的字符串。在我的网站上,我为未设置个人资料图片的客户提供了 3 张不同的图片。我想将这些图像中的一个随机关联到客户,但不会在会话之间更改图像。
使用 GetHashCode 是否有任何问题,例如以下代码?
switch (CustomerIdString.GetHashCode() % 3)
{
case 0:
return "NoProfileImage0.png";
break;
case 1:
return "NoProfileImage1.png";
break;
case 2:
default:
return "NoProfileImage2.png";
break;
}
我知道还有其他解决方案,例如-
- 使用更好的哈希库
- 使用客户 ID 作为随机数生成器中的种子
- 根据客户记录保留图像名称
但我喜欢使用 GetHashCode() 的简单性(没有添加库,没有 DB 代码)。