c#写入x';s正在使用循环

本文关键字:循环 写入 | 更新日期: 2023-09-27 18:29:30

我制作了文本框1和2,以创建一行x,从一个x开始,然后输入,然后输入xx,依此类推。

现在我需要文本框3和4来显示相同的内容,但它必须从10x开始。这就是我的

namespace Vierkant
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
        InitializeComponent();
        }
        private void button_Click_1(object sender, RoutedEventArgs e)
        {
            string x = "X";
            for (int i = 0; i < 10; i++)
            {
                if ( i == 0)
                {
                    x = "X";
                }
                else
                {
                    x += "X";
                }
                txt_box1.Text += (x) + "'n";
                txt_box2.Text += (x) + "'n";
            }
            for (int j = 10; j > 0; j--)
            {

                if (j == 10)
                {
                    x = x.Remove(x.Length - 1);
                }
                else
                {
                    x = x.Remove(x.Length - 1);
                }
                txt_box3.Text += (x) + "'n";    
                txt_box4.Text += (x) + "'n"; 
// txt_box4.Text displays correct but starts from 9 x's?
            }
        }
    } 
}

c#写入x';s正在使用循环

在显示之前,您要删除其中一个x。

if (j == 10)
{
    x = x.Remove(x.Length - 1);
}

也许更好的解决方案是:

if (j < 10)
{
    x = x.Remove(x.Length - 1);
}

试试这个:

private void button_Click_1(object sender, RoutedEventArgs e)
{
    int i;
    string allLines = "";
    for (i = 1; i <= 10; i++)
        allLines += new string('X', i) + (i < 10 ? "'n" : "");
    txt_box1.Text = allLines;
    txt_box2.Text = allLines;
    allLines = "";
    while (--i > 0)
        allLines += new string('X', i) + (i > 1 ? "'n" : "");
    txt_box3.Text = allLines;
    txt_box4.Text = allLines;
}

这种方式更清晰、更高效,可以在内存中创建更少的字符串。