Мне нужно переупорядочить массив List, у него есть неопределяемое количество элементов в нем.
Может кто-нибудь дать мне пример того, как я это делаю, спасибо
Ответ 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;
}
}