2012-07-28 128 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()可以完全清除列表。

您的循環(在您的代碼示例中註釋掉)無法正常工作。只是想通過:

  • 首先你刪除第一個元素,使第二個元素成爲新的第一個元素。
  • 現在您刪除新的第二個元素(以前是第三個元素)。原來的第二個元素永遠不會被刪除。
  • 這種情況一直持續到元素的一半被刪除...