我有一个在BlockingCollection<T> where T : IComparable
上枚举的消费者,然后在每个项目的文本文件中写入一行。最终结果是最大约7Gb-10Gb的文本文件。但是它们不合适。
我无法对内存中的列表进行排序,因为它可能会变得非常大。我想到解决方案的唯一方法是写入临时文本文件,然后它们到达然后在最后洗牌,但我无法想象这是非常有效的。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
我相信索引排序,如果您正在寻找。我们的想法是为每个大项目分配一个索引然后只对索引进行排序,最后只需循环遍历有序索引数组并写出文件。
答案 1 :(得分:0)
我最终使用SSIS将结果加载到SQL中的临时表中并按照这种方式对其进行排序。