我有以下代码:
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
strCsv.Append( XC.CleanForCsv(ds.Tables[0].Rows[i][j].ToString()) + ",");
}
strCsv.Append( "\r\n" + strCsv)
}
Dataset
包含 8000 条记录。使用 for
遍历记录仅在 15 条记录后循环 strCsv.Append( "\r\n" + strCsv)
语句抛出异常说 System.OutOfMemoryException
.这个异常背后的原因是什么?
最佳答案
看看这个:
strCsv.Append( "\r\n" + strCsv)
您在每次迭代 上将输出加倍。这会非常快速地积累起来——同时也会给你错误的结果。
我想你只是想:
strCsv.Append("\r\n");
关于c# - StringBuilder 中的 system.outofmemoryexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17940587/