0

現在、リストから要素をランダムに選択し、asp.net のページが更新されるたびに変化する要素をユーザーに表示しています。

ただし、一日中 1 つの要素を表示し、次の日に別の要素を表示したいなどです。

リスト要素をランダムに選択するための私のコードは次のとおりです。

  public static List<T> Shuffle<T>(this IList<T> list)
{
    RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider();
    int n = list.Count;
    while (n > 1)
    {
        byte[] box = new byte[1];
        do provider.GetBytes(box);
        while (!(box[0] < n * (Byte.MaxValue / n)));
        int k = (box[0] % n);
        n--;
        T value = list[k];
        list[k] = list[n];
        list[n] = value;
    }

    return list.ToList();
}
4

1 に答える 1