2014-12-05 86 views
0
foreach (Student student in liststu) 
{ 
    listBox1.Items.Add(student.ToString()); 
} 
foreach (Staff staff in liststa) 
{ 
    listBox1.Items.Add(staff.ToString()); 
} 

我有兩個arraylist liststaliststu用於填充我的列表框。我試圖從列表框和arrylist中同時刪除,我正在嘗試使用Remove(),但我不知道如何從列表框中獲取正確的值以便在arraylist中刪除。刪除相同的值列表框和陣列列表

for (int i = listBox1.SelectedIndices.Count - 1; i >= 0; i--) 
{ 
    listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]); 
    liststa.Remove(listBox1.SelectedIndex.ToString()); 
} 

我如何從列表框中的使用ArrayList的Remove()

回答

0

的問題在這裏正確的值是.Remove正試圖通過值來查找特定的字符串,而不是指數。

例如,你想從對象的ArrayList中刪除字符串「2」,指數2

這聽起來像你想通過指數來去除,所以乾脆就ArrayList中使用.RemoveAt以及

listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]); 
liststa.RemoveAt(listBox1.SelectedIndices[i]); 

這顯然需要listtsa和listBox1中保持同步

+0

之前從ArrayList中刪除其給出錯誤「索引超出了數組的範圍。」我之前列表框位置試試這個和ArrayList的位置是不同的,我認爲是因爲IM加載另一個列表中列出框也 – 2014-12-05 19:58:56

+0

刪除由字符串較好地解決了我 – 2014-12-05 20:02:37

0

你必須讓從列表中選擇的項目價值不僅01將selectedIndex還你從ArrayList中刪除列表之前

試試這個

int selectedIndex; 
for (int i = listBox1.SelectedIndices.Count - 1; i >= 0; i--) 
{ 
selectedIndex=listBox1.SelectedIndices[i]; 
liststa.Remove(listBox1.Items[selectedIndex].ToString()); 
listBox1.Items.RemoveAt(selectedIndex); 
} 
+0

仍然ArrayList的非刪除 – 2014-12-05 20:16:27

0

可以嘗試通過索引中刪除,但名單爲以下

int selectedIndex; 
for (int i = listBox1.SelectedIndices.Count - 1; i >= 0; i--) 
{ 
selectedIndex=listBox1.SelectedIndices[i]; 
liststa.RemoveAt(selectedIndex); 
listBox1.Items.RemoveAt(selectedIndex); 
} 
+0

此代碼工作,但我有兩個數組列表加載相同的列表框,, – 2014-12-07 19:40:11

+0

爲什麼不把2個數組列表合併成一個? – Nobel 2014-12-08 08:55:02