J'ai besoin de réorganiser mon tableau List, il contient un nombre d'éléments non déterminable.
Quelqu'un peut-il me donner un exemple de la façon dont je fais cela, merci
List<Foo> source = ...
var rnd = new Random();
var result = source.OrderBy(item => rnd.Next());
Évidemment, si vous voulez un véritable caractère aléatoire au lieu d'un générateur de nombres pseudo-aléatoires, vous pouvez utiliser RNGCryptoServiceProvider au lieu de Random .
Il s'agit d'une méthode d'extension qui mélangera un 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;
}
}