在我的项目中,我需要输出大量的字符串来控制与windows notepad类似的控件。现在我正在使用TextBox。
for(int i = 0; i< result.Count;i++)
{
textbox.Text += result[i].ToString() + Environment.NewLine;
}
如果结果计数= 3000,那么这个循环在我的电脑上持续13秒,这定义得太慢,那么我应该使用(或如何配置文本框?)以获得更快的输出?
答案 0 :(得分:3)
如果您要枚举非常大的集合,那么在某种程度上,您总是会受到性能影响。但是,您可以避免字符串连接的 lot (这非常慢且占用大量内存),并且必须通过使用内置字符串创建方法在循环的每次迭代中分配控制文本在分配之前。在这种情况下,一种简单的方法是String.Join
textbox.Text = String.Join(Environment.NewLine, result);
使用StringBuilder
也会更有效:
StringBuilder builder = new StringBuilder();
for(int i = 0; i< result.Count;i++)
{
builder.AppendLine(result[i]);
}
textbox.Text = builder.ToString();