我正在看这段代码
var numbers = Enumerable.Range(0, 20);
var parallelResult = numbers.AsParallel().AsOrdered()
.Where(i => i % 2 == 0).AsSequential();
foreach (int i in parallelResult.Take(5))
Console.WriteLine(i);
AsSequential()
应该使结果数组排序。实际上它是在执行后排序的,但是如果我删除对 的调用AsSequential()
,它仍然是排序的(因为AsOrdered()
)被调用。
两者有什么区别?