【发布时间】:2016-01-21 05:14:28
【问题描述】:
我在两个大列表(超过 100 万个条目)上使用联合,而且速度很慢(几分钟)
我需要删除重复项的功能,所以我不能使用 concat 并且我的列表没有排序。
有更快的方法吗?也许使用plinq?
【问题讨论】:
-
您需要向我们展示您的代码。两个 100 万项的列表应该能够在 Union。
-
请注意,我的基准测试:生成 200 万个随机整数、联合并转储结果计数在
0.083秒内运行。 -
心理调试:您的 List 包含一个未实现
Equals或GetHashCode的自定义结构,因此您获得了 CLR 提供的使用反射的默认(且缓慢)实现。有关实施建议,请参阅 code.logos.com/blog/2010/02/creating_equatable_objects.html。