StringBuilder中的system.outofmemoryexception

时间:2013-07-30 07:15:59

标签: c# stringbuilder

我有以下代码:

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条记录。仅在15条记录for语句之后使用strCsv.Append( "\r\n" + strCsv)循环遍历记录会引发异常System.OutOfMemoryException。这个例外背后的原因是什么?

1 个答案:

答案 0 :(得分:13)

看看这个:

strCsv.Append( "\r\n" + strCsv)

每次迭代的输出加倍。这将很快建立非常 - 并且会给你错误的结果。

我想你只是想:

strCsv.Append("\r\n");