我在尝试从foreach()中选择项目时失败了。 我的代码如下:
foreach (ListViewItem LISTA in this.lstImgAdded.SelectedItems)
{
lstImgAdded.SelectedItems(i).Remove();
}
答案 0 :(得分:2)
无论语法错误如何(对于索引器,您必须使用[i]
而不是(i)
),此处不需要索引器。只需在枚举项目上直接使用ListViewItem.Remove
:
foreach (ListViewItem item in lstImgAdded.SelectedItems)
{
item.Remove();
}
此外,你应该注意两件事:
一个人无法使用ListView.SelectedListViewItemCollection.Remove
,因为它是read-only(请参阅“备注”部分或implementation):
这是一种罕见的情况,因为在迭代时可以安全地修改序列,因为ListView.SelectedListViewItemCollection.GetEnumerator
会返回所选项目“快照”的枚举器。
答案 1 :(得分:0)
从结束开始计数并继续直到达到零。
for (int i = listView1.Items.Count - 1; i >= 0; i--)
{
if (listView1.SelectedItems[i].Selected)
{
listView1.SelectedItems[i].Remove();
}
}
如果您有10个项目并删除第一个项目,则该列表仅剩下9个项目。一旦您尝试删除丢失的项目,在这种情况下是第6个,您将收到错误。