删除ListViewItem集合中所有选定项目的最有效方法是什么?

And*_*rew 3 c# listview winforms

我的用户可以选择一个ListView配置为显示详细信息的集合中的多个项目(即行列表).

我想要做的是添加一个Delete按钮,删除ListViewItem与该关联的集合中的所有选定项目ListView.

所选项目的集合可用ListView.SelectedItems,但ListView.Items似乎没有一种方法可以删除整个范围.我必须遍历范围并逐个删除它们,这可能会修改我正在迭代的集合.

所以,我基本上是追求的是相反的AddRange().

Ray*_*sen 5

如果你有一个selectedItems的集合,你可以简单地在每个集合上调用remove而不是迭代ListView.

ListViewItem上有一个名为Remove()的方法.

ListView listview = <reference to ListView>;
foreach (ListViewItem item in listView.SelectedItems)
{
  item.Remove();
}
Run Code Online (Sandbox Code Playgroud)

这将删除所有项目的迭代,并仅删除所选项目.