Подтвердить что ты не робот

Shuffle (случайный случайный выбор) List <string>

Мне нужно переупорядочить массив List, у него есть неопределяемое количество элементов в нем.

Может кто-нибудь дать мне пример того, как я это делаю, спасибо

4b9b3361

Ответ 1

List<Foo> source = ...
var rnd = new Random();
var result = source.OrderBy(item => rnd.Next());

Очевидно, если вам нужна реальная случайность вместо генератора псевдослучайных чисел, вы можете использовать RNGCryptoServiceProvider вместо Random.

Ответ 2

Это метод расширения, который будет тасовать List<T>:

    public static void Shuffle<T>(this IList<T> list) {
        int n = list.Count;
        Random rnd = new Random();
        while (n > 1) {
            int k = (rnd.Next(0, n) % n);
            n--;
            T value = list[k];
            list[k] = list[n];
            list[n] = value;
        }
    }