我对如何在单击按钮时创建新列表项以及如何在创建列表项后将列表项输出到列表框感到困惑。
我已经宣布了这个名单并将其命名为全球硬币:
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;
}
}
点击回车按钮没有任何反应,列表框中没有显示任何内容,所以我有点困惑。感谢。
答案 0 :(得分:0)
您的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();
答案 1 :(得分:0)
你的第一个for循环可以有两种方式:
它要么什么都不做(就像现在一样),因为i
将从0
开始,就像coin.Count
一样。
另一种选择是无限循环。为此,您必须从1
:for (i = 1...
开始计算。对你没有任何好处
我还假设您希望GroupBox的文本看起来像这样:
/1/2/3/4/5...
您将无法使用您的代码完成此操作。您将List本身转换为字符串
要获得上面看到的格式,我建议使用StringBuilder
对象:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < coin.Count(); i++)
{
builder.Append("/");
builder.Append(coin[i].ToString());
}
groupBox1.Text = builder.ToString();
答案 2 :(得分:0)
我的理解是你要在列表中添加一个硬币,其值比列表中的项目数多一个。如果是这样,您需要以下内容:
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;
}
}