繁体   English   中英

在文本块中添加多行而不覆盖上一行

[英]Add multiple lines in a textblock without over writing the previous line

我正在尝试使用 for 循环将 output 数组放入文本块中,每个元素都排在一行中,但它只输出最后一个元素。

我认为用下一个写完当前的 output。 有没有一种方法可以使用单个文本块在新行上打印每个元素的整个数组? 这就是我目前正在尝试的。

string nl = Environment.NewLine;

for (int i = 0; i < 10; i++)
        {
            display_all_output2.Text = (arrayid[i] + nl);
        }
        

go 有几种方法,最简单的就是将文本添加到现有文本上。

display_all_output2.Text += (arrayid[i] + nl);

这不是这里的最佳实践,但出于两个原因,字符串是一种不可变类型,实际上每次执行此操作时都必须在后台构建一个新类型,并且这是一个循环,因此它会发生多次。 您可能不会注意到 10 次循环的速度差异,但是有几种直接的方法可以处理附加文本。

首先是 string.Join 提到的几个人。

string.Join(Environment.NewLine, arrayid);

那是在一行而不是多行中完成的。 另一种方法是,如果出于其他原因确实需要遍历数组,则使用 StringBuilder。

StringBuilder sb = new StringBuilder();

for (int i = 0; i < 10; i++)
    {
        sb.Append(arrayid[i] + Environment.NewLine));
    }

StringBuilder 用于快速扩展和修改内容。

编辑添加:使用 StringBuilder 构建字符串后,您通常会使用 .ToString() 检索 StringBuilder 的内容

display_all_output2.Text = sb.ToString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM