C# 删除相同值的列表框和arraylist
我有两个用于填充列表框的arraylistC# 删除相同值的列表框和arraylist,c#,arraylist,listbox,C#,Arraylist,Listbox,我有两个用于填充列表框的arraylistliststaliststu。我试图同时从listbox和arrylist中删除,我试图使用Remove() foreach (Student student in liststu) { listBox1.Items.Add(student.ToString()); } foreach (Staff staff in liststa) { listBox1.Items.Add(staff.ToString()); } 如何使用array
liststa
liststu
。我试图同时从listbox和arrylist中删除,我试图使用Remove()
foreach (Student student in liststu)
{
listBox1.Items.Add(student.ToString());
}
foreach (Staff staff in liststa)
{
listBox1.Items.Add(staff.ToString());
}
如何使用arraylist的Remove()
从列表框中获取正确的值这里的问题是.Remove
尝试按值而不是按索引查找特定的字符串
例如,您试图从对象的ArrayList中删除字符串“2”,而不是从索引2中删除
听起来您希望按索引删除,因此也只需在arraylist上使用.RemoveAt
for (int i = listBox1.SelectedIndices.Count - 1; i >= 0; i--)
{
listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]);
liststa.Remove(listBox1.SelectedIndex.ToString());
}
这显然要求ListSA和listBox1保持同步您必须从列表中获取所选项目值,而不仅仅是selectedIndex
您还必须在列表之前从ArrayList中删除
试试这个
listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]);
liststa.RemoveAt(listBox1.SelectedIndices[i]);
是否可以尝试按索引删除,但从列表前面的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);
}
它的给定错误“索引超出了数组的边界。”我在listbox位置和arraylist位置之前尝试过这个,我想这是因为我也在将另一个列表加载到列表框,按字符串删除mestill arraylist non Deleted更好的解决方案此代码正常工作,但我有两个arraylist加载相同的listbox,,为什么不把两个ArrayList合并成一个呢?
int selectedIndex;
for (int i = listBox1.SelectedIndices.Count - 1; i >= 0; i--)
{
selectedIndex=listBox1.SelectedIndices[i];
liststa.RemoveAt(selectedIndex);
listBox1.Items.RemoveAt(selectedIndex);
}