有序和无序并行集合在 C# 中是否应具有不同的类型

本文关键字:类型 是否 无序 并行 集合 | 更新日期: 2023-09-27 18:30:17

使用 PLINQ C# 并行查询分为有序或无序,具体取决于构造它们的方式。此处提供了有关 PLINQ 中订单保留的一些 MSDN 信息。

我觉得这令人困惑且难以管理。在我看来,顺序重要的集合是序列,顺序不重要的集合是子(或者如果没有重复项,那么它们可能是集合)。

对包和序列的操作是不同的,并且具有不同的复杂性特征,尤其是当作为并行算法实现时。

换句话说,我认为有序和无序集合应该是不同的类型,这将简化事情。PLINQ中的所有内容都被统一为"ParallelQuery()",这有什么原因吗?

有序和无序并行集合在 C# 中是否应具有不同的类型

为什么PLINQ中的所有内容都统一为简单的"ParallelQuery()"

它更简单。我想 2 种类型本来是可能的,但需要付出相当大的代价。它会更容易使用吗?

当您在并行中处理序列时,默认情况下会放弃顺序。您应该意识到,重新建立序列是昂贵的,并且它应该需要一些额外的步骤。

但是,当您需要它时,添加.AsOrdered()似乎比先将数据复制到另一个集合要少得多。