C# StringBuilder中的system.outofmemoryexception

C# StringBuilder中的system.outofmemoryexception,c#,stringbuilder,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" + strC

我有以下代码:

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)
}
for(int i=0;i
数据集
包含8000条记录。在15条记录之后使用
for
循环遍历记录
strCsv.Append(“\r\n”+strCsv)
语句抛出异常,表示
System.OutOfMemoryException
。这个异常背后的原因是什么?

看看这个:

strCsv.Append( "\r\n" + strCsv)
在每次迭代中,您的输出都会翻倍。这将很快建立起来,并给你错误的结果

我想你只是想:

strCsv.Append("\r\n");
看看这个:

strCsv.Append( "\r\n" + strCsv)
在每次迭代中,您的输出都会翻倍。这将很快建立起来,并给你错误的结果

我想你只是想:

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

请注意,以后的问题-请注意将代码格式化得很好。我现在将编辑这个问题,以显示它应该如何开始发布,但请在以后的第一篇文章中这样做。注意,对于未来的问题,请注意将代码格式化得很好。我现在将编辑这个问题,以显示它应该如何开始发布,但请在以后的第一篇文章中这样做。