单击创建一个新的 int 列表项,并输出到组框中
Create a new int list item on click, and output into group box
我很困惑如何通过单击按钮创建新的列表项,以及如何在创建列表项后将列表项输出到列表框中。
我已经声明了列表并全局命名为coin:
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;
}
}
点击回车按钮没有任何反应,列表框中也没有任何显示,所以我有点困惑。谢谢
您的 for 循环条件将始终设置为 false。单击回车时,coin.Count();
为 0,i 为 0。因此,coin.Add()
永远不会被调用,也没有任何反应。修改您的 for 循环,以便调用 Add();
,例如
for (int i = 0; i <= coin.Count(); i++)
coin.Add(i);
这样,如果集合中没有硬币,for循环仍然会运行一次。
此外,在您的组框中,coin.ToString();
指的是 List
本身,而不是个人 'coin'。您想使用 for 循环的 i 来选择元素,即 string spacesOutput = coin[i].ToString();
您的第一个 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();
我的理解是你想在列表中添加一枚硬币,其价值比列表中的项目数多一。如果是这样,您需要以下内容:
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;
}
}
我很困惑如何通过单击按钮创建新的列表项,以及如何在创建列表项后将列表项输出到列表框中。
我已经声明了列表并全局命名为coin:
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;
}
}
点击回车按钮没有任何反应,列表框中也没有任何显示,所以我有点困惑。谢谢
您的 for 循环条件将始终设置为 false。单击回车时,coin.Count();
为 0,i 为 0。因此,coin.Add()
永远不会被调用,也没有任何反应。修改您的 for 循环,以便调用 Add();
,例如
for (int i = 0; i <= coin.Count(); i++)
coin.Add(i);
这样,如果集合中没有硬币,for循环仍然会运行一次。
此外,在您的组框中,coin.ToString();
指的是 List
本身,而不是个人 'coin'。您想使用 for 循环的 i 来选择元素,即 string spacesOutput = coin[i].ToString();
您的第一个 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();
我的理解是你想在列表中添加一枚硬币,其价值比列表中的项目数多一。如果是这样,您需要以下内容:
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;
}
}