Как, сортируя один массив в случайном порядке, отсортировать еще один в точно таком же порядке?

270
01 июня 2017, 06:03
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 отсортировался в точно таком же порядке?

Answer 1

Генератор случайных числе в .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;  
    }  
}
READ ALSO
Окно входа steam на С#

Окно входа steam на С#

Подскажите где найти тему интерфейса в стиле Steam для WindowsForms, обрыл весь интернет, но не нашел ничего годного

228
Привязка DataGrid к коллекции коллекций

Привязка DataGrid к коллекции коллекций

Есть датагрид к которому нужно биндить коллекцию из класса вью модели которая сама является составной из нескольких однотипных коллекций...

207
Не выполняется подготовленный запрос

Не выполняется подготовленный запрос

Почему нельзя выполнить команду

224
Uncaught Error: Call to undefined function mysql_real_escape_string()

Uncaught Error: Call to undefined function mysql_real_escape_string()

Ошибка - Uncaught Error: Call to undefined function mysql_real_escape_string()

418