C# 如何使用TextBox对列表框中的所有数字求和?

C# 如何使用TextBox对列表框中的所有数字求和?,c#,textbox,listbox,sum,C#,Textbox,Listbox,Sum,我想对列表框中的所有值进行计数和求和。例如,我的列表框中有以下值:4,6,1,7。我的当前值是18。如果我用文本框添加2,我需要得到20,如果我添加5我总共需要得到25 如果我用下面的代码尝试,它会给我一个完整的其他数字 这是我的密码: private void AddButton_Click(object sender, EventArgs e) { decimal sum; listBox2.Items.Add(TextBox1.Text); TextBox1.Tex

我想对
列表框中的所有值进行计数和求和。例如,我的
列表框中有以下值:
4
6
1
7
。我的当前值是
18
。如果我用
文本框添加
2
,我需要得到
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();
}
private void AddButton\u单击(对象发送者,事件参数e)
{
十进制和;
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text=“”;
对于(int i=0;i
您没有初始化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 AddButton\u单击(对象发送者,事件参数e)
{
十进制和=0;//默认设置和=0
listBox2.Items.Add(TextBox1.Text);
TextBox1.Text=“”;
对于(int i=0;i
很抱歉,可能没有回答,但奇怪的是,编译器没有告诉您初始化sum。第二次我测试了你的代码,它正常工作,这意味着如果问题不在sum变量中,那么你在其他地方对这个字段做了一些其他操作,因此你的代码不能正常工作


考虑到你对前一个人的评论,我也会这么说。在某些情况下(我知道这很有趣),你的电脑上可能有病毒。检查一下。在我的一生中,有一次我的数学实验失败了,因为病毒打断了我的程序,所以它画错了图表!生病我知道:D

使用未分配的局部变量'sum',使用前必须分配sum

decimal sum = 0;

Rest all正常

需要将sum设置为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(); 
}

它还能给你什么号码?你能用调试器一步一步地完成循环并检查每个加起来的值吗?小提示:使用foreach而不是for循环来迭代itemsNope我尝试过它,如果我有以下数字4、5和6,它会显示为结果28Debug您的代码并检查sum的值。Console.WriteLine在这里肯定会有帮助。同意您的第一段,但不同意第二段。只是因为默认的初始化代码给出了奇怪的结果。对于第一段,仍然+1…@Prasadelkikikar-man说他尝试初始化,但仍然存在xD
foreach(listBox2.Items中的var s){…}
请更正它。您需要迭代不使用ListBox的项。你的代码有问题,请更正
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(); 
}