我试图从ListBox中删除数字项,如果这些值存在于另一个ListBox中.我的代码似乎不起作用,我找不到任何在线帮助.ListBox1由Array填充,ListBox2由DataSet表(fyi)填充.
另外供参考:我没有添加项目到列表框或选择...只是想比较两个并从ListBox1中删除ListBox2项目,如果它们全部存在,只需按一下按钮即可.谢谢,
private void button1_Click(object sender, EventArgs e)
{
foreach (int item in listBox1.Items)
{
if (listBox2.Items.Contains(item))
{
listBox1.Items.Remove(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么你只是在你的代码中引用一个列表框 - 我怀疑你会想要:
private void button1_Click(object sender,EventArgs e){
foreach (int item in listBox1.Items)
{
if (listBox2.Items.Contains(item)) // notice change of reference
{
listBox1.Items.Remove(item);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致错误,因为您正在修改ListBox迭代它的项目.一种安全删除项目的方法是在集合上向后迭代:
for (int i = listBox1.Items.Count - 1; i >= 0; i--)
{
int item = listBox1.Items[i];
if (listBox2.Items.Contains(item)) // notice change of reference
{
listBox1.Items.RemoveAt(i);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |