单击创建一个新的int列表项,并输出到组框中

本文关键字:输出 列表 int 创建 一个 单击 | 更新日期: 2023-09-27 18:25:18

我很困惑如何在单击按钮时创建新的列表项,以及如何在创建列表项后将列表项输出到列表框中。

我已经宣布了这个列表,并将其命名为全球硬币:

List<int> coin = new List<int>();

然后单击名为"Enter"的按钮,我试图将一个新项目添加到列表中,这将通过for循环确定列表项目的值,因此该值必须高于列表中当前项目的数量:

    private void btnEnter_Click(object sender, EventArgs e)
    {
        for (int i = 0; i > coin.Count(); i++)
        {
            coin.Add(i);
        }
    }

然后在列表框中,我试图通过将列表项转换为字符串来输出所有列表项,并计算for循环中的值数量,如下所示:

    private void groupBox1_Enter(object sender, EventArgs e)
    {
        for (int i = 0; i < coin.Count(); i++)
        {
            string spacesOutput = coin.ToString();
            groupBox1.Text = "/" + spacesOutput;
        }
    }

单击输入按钮时,什么都没有发生,列表框中也没有显示任何内容,所以我有点困惑。谢谢

单击创建一个新的int列表项,并输出到组框中

您的第一个for循环有两种方式:
它要么什么都不做(就像现在一样),因为i将从0开始,就像coin.Count一样
另一种选择是无休止的循环。为此,您必须在1:for (i = 1...开始计数。两者都不会对你有任何好处
我还想你想让你的GroupBox的文本看起来像这样:

/1/2/3/4/5...

这是用代码无法实现的。您可以将列表本身转换为字符串
要获得上面看到的格式,我建议使用StringBuilder对象:

StringBuilder builder = new StringBuilder();
for (int i = 0; i < coin.Count(); i++)
{
    builder.Append("/");
    builder.Append(coin[i].ToString());
}
groupBox1.Text = builder.ToString();

您的for循环条件将始终设置为false。单击enter时,coin.Count();为0,i为0。因此,coin.Add()永远不会被调用,也不会发生任何事情。修改for循环,以便调用Add();,例如

for (int i = 0; i <= coin.Count(); i++) coin.Add(i);

这样,如果集合中没有硬币,for循环仍将运行一次。

此外,在您的分组框中,coin.ToString();指的是List本身,而不是单个的"硬币"。您希望使用for循环的i来选择元素,即string spacesOutput = coin[i].ToString();

我的理解是,您希望向列表中添加一枚硬币,其值比列表中的项目数多一枚。如果是这样,您需要以下内容:

List<int> coin = new List<int>();
private void groupBox1_Enter(object sender, EventArgs e)
{
  coin.Add(coin.Count + 1);
}

然后,要输出硬币的值。。。

private void groupBox1_Enter(object sender, EventArgs e)
{
    for (int i = 0; i < coin.Count(); i++)
    {
        string spacesOutput = coin[i].ToString();
        groupBox1.Text += "/" + spacesOutput;
    }
}