嘿,我有一个非常讨厌的问题,我有一个双打和列表框列表。用户可以在文本框中输入值,然后单击EnterValue。
List<double> listDouble = new List<double>();
private void EnterValue_Click(object sender, EventArgs e)
{
//convert input to double
listDouble.Add(Convert.ToDouble(textBox1.Text));
textBox1.Clear();
//clear existing items
listBox1.Items.Clear();
// clear any existing list items
for (int i = 0; i < listDouble.Count; i++)
{
listBox1.Items.Add(listDouble[i]);
}
}
然后我有另一个用户可以点击的按钮,它将对输入的双打列表求和。
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
CalculateSumOfList.ServiceReference1.Service1SoapClient client = new CalculateSumOfList.ServiceReference1.Service1SoapClient();
CalculateSumOfList.ServiceReference1.ArrayOfDouble arrayOfDoubles = new CalculateSumOfList.ServiceReference1.ArrayOfDouble();
arrayOfDoubles.AddRange(listDouble);
string result = client.CalculateSum(arrayOfDoubles);
label1.Text = result;
//for (int i = 0; i < listDouble.Count; i++)
//{
// listDouble.Remove(i);
//}
}
这里的问题是,当用户输入一个值时,它会被添加到列表中,当用户输入另一个数字时,列表显示正常,当用户计算列表的总和时,该值是正确的。但之后,如果用户返回向列表中添加更多数字,那么“旧”列表会附加到末尾吗?
我已经尝试了一切手段在计算完成后处理那个“旧”列表。但没有任何作用。其中哪一个会破坏第二次尝试。
答案 0 :(得分:1)
使用listDouble.Clear()
完全清除列表。
你的循环(在你的代码示例中注释掉)无法正常工作。试想一下: