я получил IEnumerable коллекции следующегослучайный порядок из IEnumerable
var result1 = GetResult1() // Returns 2,4,5,6
я должен жонглировать элементы и создать еще одну коллекцию в случайном порядке, которое должно привести к следующему образом:
var result2 = GetResult2(result1) // Returns 2,4,5,6 in a random order.
// An example output would be 4,6,2,5 in the resultant collection.
Я сделал это следующим образом:
var result1 = GetResult1();
var random = new Random();
var result2 = result1.OrderBy(order=>random.Next());
Однако проблема заключается в том, что если я acc ess result2 элементы в result2 снова перетасовываются, т. е. если я дважды выводят результаты результата2 на консоль, элементы снова жонглируются.
Не могли бы вы посоветоваться, как сохранить эту форму. когда я жонглирую коллекцию, она должна оставаться такой же, как и в дальнейшем. Я должен использовать ленивую оценку, потому что результаты очень большие по размеру.
Это решение по-прежнему удваивает исходный размер результата. Понятно, что это примерно эквивалентно материализации «IEnumerable». – Marc
Как это? если каждый элемент 'result1' - это класс, который содержит много полей, это много данных. Это будет только удвоение, если каждый элемент 'result1' содержит одно поле размером int. Решение, которое я здесь привел, будет потреблять память, хранящую случайные числа, но на самом деле получение данных результата отложено. – Lukazoid
Кто сказал, что это объекты? На OP они кажутся целыми числами. – Marc