Это правильный способ перетасовать стек объекта типа, используя класс RNGCryptoServiceProvider в C#? - PullRequest
0 голосов
/ 22 апреля 2020

Я нашел это в Stackoverflow ...

static int GetNextInt32(RNGCryptoServiceProvider rnd)
{
    byte[] randomInt = new byte[4];
    rnd.GetBytes(randomInt);
    return Convert.ToInt32(randomInt[0]);
}

... и написал это ...

        //shuffle stack to keep randomness
        Fish[] arr = Temp.ToArray();  // stack to array

        //Use a cryptographic random object generator
        RNGCryptoServiceProvider rnd = new RNGCryptoServiceProvider();  // random object provider
        Fish[] MyRandomArray = arr.OrderBy(x => GetNextInt32(rnd)).ToArray();  // shuffle object array

        //array to stack 
        Temp = new Stack<Fish>(MyRandomArray);

        return Temp;

Примечание: «Temp» - это стек введите 'Fi sh', и в нем уже есть значения "Pressed".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...