0

嘿,我有一个非常烦人的问题,我有一个双打列表和一个列表框。用户可以在文本框中输入一个值,然后单击 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);
        //}
    }

这里的问题是,当用户输入一个值时,它被添加到列表中,这很好,当用户输入另一个数字时,列表显示正常,当用户计算列表的总和时,该值是正确的。但是在那之后,如果用户然后返回向列表添加更多数字,那么“旧”列表会附加到末尾吗?

在计算完成后,我已经尝试了各种方法来处理那个“旧”列表。但没有任何效果。这当然会破坏第二次尝试。

4

1 回答 1

1

用于listDouble.Clear()完全清除列表。

您的循环(在您的代码示例中注释掉)无法正常工作。想一想:

  • 首先,您删除第一个元素,使第二个元素成为新的第一个元素。
  • 现在删除的第二个元素(以前是第三个元素)。原始的第二个元素永远不会被删除。
  • 这一直持续到一半的元素被删除......
于 2012-07-28T10:51:55.147 回答