日期:2014-05-18 浏览次数:21063 次
List<Product> table = new List<Product>();
class Product
{
public string name;
public decimal price;
public int count;
private Product()
{
}
public Product(string name, decimal price, int count)
{
this.name = name;
this.price = price;
this.count = count;
}
}
------解决方案--------------------
数据量那么大,List<>的膨胀速度确实会很惊人。不行就自己简单地分一下页?
比如每读取5K行就汇总一次,把汇总结果存入一个中间文件,比如temp1.txt。然后再读下一个5K行,依此循环。
最后再对temp1.txt、temp2.txt这些中间文件进行二次汇总。
这么大数据量,不用数据库,真的很麻烦。
------解决方案--------------------
"最重要的是List<Product> table = new List<Product>();装不下合并的结果,没处理完就显示内存溢出了"
LZ,分两个步骤:
1、用HashTable,哈希表的空间伸缩范围要大。
2、遍历文本同时,进行计算处理,不能先装,在合并,这样消耗内存太大了!
如果哈希表都不能解决你的问题,建议先把文本导入到数据库中,在进行处理,毕竟数据库伸缩的空间比内存要大多了。。。。