如何在乘法表C#中的字符串中添加新行

时间:2018-11-11 13:44:58

标签: c# winforms

我正在尝试创建一个乘法表。

这是我必须创建的: Multiplication Table

这是我目前拥有的: Current Multiplication Table

我的代码(用于while按钮):

private void button1_Click(object sender, EventArgs e)
{
    int i = 0;
    string s = " ";
    int m = int.Parse(textBox4.Text);
    while (i <= 10)
    {
        s = s + "\n" + m + " * " + i + " = " + m * i + "\n";
        i++;
    }
    textBox1.Text = s;
    label2.Text = "Timetable created with <<while>>";
}

很明显,问题出在String = s上-但我无法弄清楚!

2 个答案:

答案 0 :(得分:1)

在Windows中,您应使用\r\n将插入符号移至新行。它存储在Environment.NewLine中。 更改

s = s + "\n" + m + " * " + i + " = " + m * i + "\n";

s = s + "\n" + m + " * " + i + " = " + m * i + Environment.NewLine;

顺便说一句:尝试寻找ListView控件,看起来它与您的任务更相关。

答案 1 :(得分:0)

由于要在循环中附加多个字符串,因此最好使用StringBuilder

var sb = new StringBuilder();
while (i <= 10)
{
    sb.Append(m)
      .Append(" * ")
      .Append(i)
      .Append(" = ")
      .AppendLine(m * i); // AppendLine will append the line break for you after the value
    i++;
}
textBox1.Text = sb.ToString()

这与以下事实有关:字符串是不可变的,因此对于每个附加,您实际上是在内存中创建一个新字符串-而StringBuilder使用内部缓冲区(可能是字符数组)逐段构建字符串,并具有更好的性能。