如何删除列表中的所选项?

时间:2017-03-11 05:25:35

标签: c# list listview

点击按钮(删除)时,我试图删除列表中的特定项目(人物)。相反,只删除listview(listName)上的显示。当我创建另一个名称时,我删除的先前名称将再次显示在lisview上。

public void remove(object sender, EventArgs e)
    {
        foreach (ListViewItem eachItem in listName.SelectedItems)
        {
            listName.Items.Remove(eachItem);
        }
    }

2 个答案:

答案 0 :(得分:0)

您应该在枚举时列出要删除的项目列表,然后使用该列表实际删除它们,以避免在枚举时修改集合(因为修改Items实际上也在修改SelectedItems目前正在列举):

public void remove(object sender, EventArgs e)
{
    var itemsToDelete = new List<ListViewItem>();
    foreach (ListViewItem eachItem in listName.SelectedItems)
    {
        itemsToDelete.Add(eachItem);
    }
    foreach (ListViewItem eachItem in itemsToDelete)
    {
        listName.Items.Remove(eachItem);
    }
}

答案 1 :(得分:0)

您只需使用List<T>.RemoveAll即可完成此操作。

listName.RemoveAll(x => x.Selected)