StringBuilder中的system.outofmemoryexception

gha*_*ani 1 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)
}
Run Code Online (Sandbox Code Playgroud)

Dataset包含8000条记录.for仅在15条记录strCsv.Append( "\r\n" + strCsv)语句之后使用循环循环记录抛出异常说明System.OutOfMemoryException.这个例外背后的原因是什么?

Jon*_*eet 13

看这个:

strCsv.Append( "\r\n" + strCsv)
Run Code Online (Sandbox Code Playgroud)

您在每次迭代时都会将输出加倍.这将建立非常快-以及给你错误的结果.

我想你只想要:

strCsv.Append("\r\n");
Run Code Online (Sandbox Code Playgroud)