我有以下代码:

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。发生此异常的原因是什么?

最佳答案

看这个:

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


您将在每次迭代中将输出加倍。那将很快建立起来-并给您错误的结果。

我想您只想要:

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

关于c# - StringBuilder中的system.outofmemoryexception,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17940587/

10-14 21:00