2012-07-28 89 views
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); 
     //} 
    } 

这里的问题是,当用户输入的值被添加到列表这是好的,当然后用户输入另一个号码的列表显示细,并且当用户计算列表中的总和值是正确的。但在此之后,如果用户回去添加更多的数字到列表中,“旧”列表被追加到结尾?

在计算完成后,我尝试了一切手段处理那个“旧”列表。但没有任何工作。然后哪个课程会破坏第二次尝试。

+1

listDouble.Clear()? – davenewza 2012-07-28 10:52:19

回答

1

使用listDouble.Clear()可以完全清除列表。

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

  • 首先你删除第一个元素,使第二个元素成为新的第一个元素。
  • 现在您删除新的第二个元素(以前是第三个元素)。原来的第二个元素永远不会被删除。
  • 这种情况一直持续到元素的一半被删除...