3

我有一个消费者枚举 aBlockingCollection<T> where T : IComparable然后将一行写入每个项目的文本文件。最终结果是最大约 7Gb-10Gb 的文本文件。但是,它们不按顺序排列。

我无法在内存中对列表进行排序,因为它最终可能会非常大。我能想到的解决方案的唯一方法是写入临时文本文件,以便它们到达,然后在最后对它们进行改组,但我无法想象这是非常有效的。

关于如何做到这一点的任何想法?

4

2 回答 2

1

如果您正在寻找什么,我相信索引排序。这个想法是为每个大项目分配一个索引,然后只是对索引进行排序,最后只是循环遍历有序索引数组并写出文件。

维基百科:内存使用模式和索引排序

于 2012-10-31T14:12:32.973 回答
0

我最终使用 SSIS 将结果加载到 SQL 中的临时表中,并以这种方式对它们进行排序。

于 2012-11-14T15:42:25.180 回答