2013-03-25 62 views
0

我有一個程序,我試圖通過listbox將項目從一個arrayList移動到另一個,然後打印出XML中的信息,但是出現的錯誤是當我添加它時,經常會重複某些值,當沒有重複時。從列表框添加到數組列表選項無法正常工作

ArrayList list1 = new ArrayList(); 
ArrayList list2 = new ArrayList(); 
list1.Add(new RandomClass(var1, var2, var3, var4, var5, var6, var7)); 
foreach (object o in list1) 
{ 
    RandomClass m = (RandomClass)o; 
    selectionBox.Items.Add(m); 
} 

這是我的初始化代碼。

bool req = true; 

if (selectionBox.SelectedItem != null) 
{ 
    Count++; 
    errorLabel.Text = ""; 

    for (int i = 0; i < selectionBox.Items.Count; i++) 
    { 
     if (selectionBox.GetSelected(i) == true) 
     { 

      RandomClass m = selectionBox.SelectedItem as RandomClass; 
      if (m.var2 == ((RandomClass)selectionBox.Items[i]).var2) 
      { 
       list2.Add(list1[i]); 
      } 
     } 
    } 
} 
else 
{ 
    errorLabel.Text = "Error"; 
} 

這裏是我添加到另一個數組列表的地方。然而,正如我經常說的那樣,這個項目會重複一遍,而不會有所不同,我該如何解決這個問題?

+0

難道這是C#以下? 'm =(class)o;'不應該編譯。 – Tejs 2013-03-25 22:10:52

+0

@Tejs我編輯它遺憾忘記改變它,但它編譯雖然 – user2157179 2013-03-25 22:14:40

回答

0

嘗試在每次掃描並從第一個列表中添加項目時清除第二個列表。

list2.Clear(); 
for (int i = 0; i < selectionBox.Items.Count; i++) 
.... 
+0

這不起作用,因爲它擺脫列表中的所有內容,但我希望一切存儲,因爲我沒有實時添加到XML,是無論如何重置已選擇的內容? – user2157179 2013-03-25 22:49:06

0

我已經解決了這個問題,使用我的類的列表,並且似乎沒有問題。

List<RandomClass> list2 = new List<RandomClass>(); 

,然後加入時,我只是簡單地把if語句

list2.Add(m);