顧客を識別する文字列があります。私のウェブサイトには、プロフィール写真を設定していない顧客向けに 3 つの異なる画像があります。これらの画像の 1 つを顧客にランダムに関連付けたいのですが、セッション間で画像を変更したくありません。
次のコードのように、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 コードもありません) が気に入っています。