【发布时间】:2012-02-20 12:54:12
【问题描述】:
我有一个 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());
但是问题在于,如果我访问 result2,result2 中的元素会再次被打乱,即如果我将 result2 的结果输出到控制台两次,元素会再次被打乱。
请您建议如何保持这件制服。即,一旦我处理了收藏,之后它应该保持不变。不过,我必须使用惰性求值,因为结果非常庞大。
【问题讨论】:
-
Randomize a List<T>的可能重复
标签: c# c#-4.0 ienumerable