【发布时间】:2014-02-02 07:52:04
【问题描述】:
谁能解释一下为什么这段代码需要这么长时间才能运行(即 >24 小时): 行数为 5000,列数为 2000(即大约 10m 循环)。
有更好的方法吗????
for (int i = 0; i < m.rows; i++)
{
for (int j = 0; j < m.cols; j++)
{
textToWrite += m[i, j].ToString() + ",";
}
//remove the final comma.
textToWrite = textToWrite.Substring(0,textToWrite.Length-2);
textToWrite += Environment.NewLine;
}
【问题讨论】:
-
很可能是因为您使用每个
textToWrite += whatever创建了巨大的字符串。在 Java 中可以使用 StringBuilder 有效地创建大字符串,尝试在 C# 中找到等效项。 -
谢谢大家!当然,这似乎起到了作用。我会将答案标记为我用来帮助我解决问题的代码。我以前使用过 StringBuilders,但没有很长时间,我也不知道为什么。现在我愿意!!!
标签: c# .net string performance