如何使用 TextBox 对列表框中的所有数字求和?
How to sum all numbers in a Listbox using TextBox?
我想对 ListBox
中的所有值进行计数和求和。例如,我的 ListBox
中有以下值:4
、6
、1
、7
。我的当前值为 18
。如果我添加一个 2
和一个 TextBox
,我需要得到 20
,如果我添加 5
,我总共需要得到 25
。
如果我用下面的代码试试,它会给我一个完整的数字。
这是我的代码:
private void AddButton_Click(object sender, EventArgs e)
{
decimal sum;
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
for (int i = 0; i < listBox2.Items.Count; i++)
{
sum += Convert.ToDecimal(listBox2.Items[i].ToString());
}
Label1.Text = sum.ToString();
}
您错过了初始化 sum 的默认值。在将值添加到 sum
变量
之前分配 sum = 0
private void AddButton_Click(object sender, EventArgs e)
{
decimal sum = 0; //Set sum = 0 by default
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
for (int i = 0; i < listBox2.Items.Count; i++)
{
//To check value of sum after each iteration, you can print it on console
Console.WriteLine("Sum =" +sum);
sum += Convert.ToDecimal(listBox2.Items[i].ToString());
}
Label1.Text = sum.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
var sum = 0;
var value = 0;
listBox1.Items.Add(textBox1.Text);
foreach (var item in listBox1.Items)
{
if (!int.TryParse(item.ToString(), out value))
continue;
sum = sum + value;
}
label1.Text = sum.ToString();
textBox1.Text = string.Empty;
}
抱歉,您可能没有回答,但奇怪的是您的编译器没有告诉您初始化 sum。第二次我测试了你的代码,它按预期正常工作,这意味着如果问题不在 sum 变量中,那么你在其他地方对这个字段做了其他事情,所以你的代码无法正常工作。
考虑到您对前人的评论,我也会这么说。在某些情况下(我知道这很有趣但是)您的计算机上可能有病毒。核实。我一生中有一次因为病毒中断了我的程序,所以我的数学实验室工作失败了,所以它绘制了错误的图表!我知道生病了:D
使用了未赋值的局部变量'sum',sum必须在使用前赋值!
decimal sum = 0;
休息一切正常
需要将总和设置为 0,而且最好使用 foreach 而不是 Dotloop。
private void AddButton_Click(object sender, EventArgs e) {
decimal sum = 0;
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
foreach (string s in listBox2) {
sum += Convert.ToDecimal(s);
}
Label1.Text = sum.ToString();
}
我想对 ListBox
中的所有值进行计数和求和。例如,我的 ListBox
中有以下值:4
、6
、1
、7
。我的当前值为 18
。如果我添加一个 2
和一个 TextBox
,我需要得到 20
,如果我添加 5
,我总共需要得到 25
。
如果我用下面的代码试试,它会给我一个完整的数字。
这是我的代码:
private void AddButton_Click(object sender, EventArgs e)
{
decimal sum;
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
for (int i = 0; i < listBox2.Items.Count; i++)
{
sum += Convert.ToDecimal(listBox2.Items[i].ToString());
}
Label1.Text = sum.ToString();
}
您错过了初始化 sum 的默认值。在将值添加到 sum
变量
sum = 0
private void AddButton_Click(object sender, EventArgs e)
{
decimal sum = 0; //Set sum = 0 by default
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
for (int i = 0; i < listBox2.Items.Count; i++)
{
//To check value of sum after each iteration, you can print it on console
Console.WriteLine("Sum =" +sum);
sum += Convert.ToDecimal(listBox2.Items[i].ToString());
}
Label1.Text = sum.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
var sum = 0;
var value = 0;
listBox1.Items.Add(textBox1.Text);
foreach (var item in listBox1.Items)
{
if (!int.TryParse(item.ToString(), out value))
continue;
sum = sum + value;
}
label1.Text = sum.ToString();
textBox1.Text = string.Empty;
}
抱歉,您可能没有回答,但奇怪的是您的编译器没有告诉您初始化 sum。第二次我测试了你的代码,它按预期正常工作,这意味着如果问题不在 sum 变量中,那么你在其他地方对这个字段做了其他事情,所以你的代码无法正常工作。
考虑到您对前人的评论,我也会这么说。在某些情况下(我知道这很有趣但是)您的计算机上可能有病毒。核实。我一生中有一次因为病毒中断了我的程序,所以我的数学实验室工作失败了,所以它绘制了错误的图表!我知道生病了:D
使用了未赋值的局部变量'sum',sum必须在使用前赋值!
decimal sum = 0;
休息一切正常
需要将总和设置为 0,而且最好使用 foreach 而不是 Dotloop。
private void AddButton_Click(object sender, EventArgs e) {
decimal sum = 0;
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text = "";
foreach (string s in listBox2) {
sum += Convert.ToDecimal(s);
}
Label1.Text = sum.ToString();
}