private static System.Random rng = new System.Random();
public static void Shuffle<T>(this IList<T> list, IList<T> list2)
{
int n = list.Count;
while (n > 1) {
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}
Сортирует значения какого-нибудь List в случайном порядке. А как сделать так, чтобы List2 отсортировался в точно таком же порядке?
Генератор случайных числе в .NET позволяет повторно генерировать ту же цепочку чисел, если инициализировать его одним и тем же исходным числом — зерном (seed).
var random1 = new Random(100);
Suffle(list, random1);
var random2 = new Random(100);
Suffle(list2, random);
public static void Shuffle<T>(this IList<T> list, Random rng)
{
int n = list.Count;
while (n > 1) {
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей