【发布时间】:2016-05-01 09:03:36
【问题描述】:
尝试从 foreach() 中选择项目时失败。 我的代码如下:
foreach (ListViewItem LISTA in this.lstImgAdded.SelectedItems)
{
lstImgAdded.SelectedItems(i).Remove();
}
【问题讨论】:
标签: c#
尝试从 foreach() 中选择项目时失败。 我的代码如下:
foreach (ListViewItem LISTA in this.lstImgAdded.SelectedItems)
{
lstImgAdded.SelectedItems(i).Remove();
}
【问题讨论】:
标签: c#
从末尾开始计数,一直计数到零。
for (int i = listView1.Items.Count - 1; i >= 0; i--)
{
if (listView1.SelectedItems[i].Selected)
{
listView1.SelectedItems[i].Remove();
}
}
如果您有 10 个项目并删除第一个项目,则列表只剩下 9 个项目。一旦您尝试删除丢失的项目,在这种情况下是第 6 次,您就会收到错误消息。
【讨论】:
SelectedItems 集合。有什么好处?
不管语法错误(索引器必须使用[i] 而不是(i)),这里不需要索引器。只需在枚举项上直接使用ListViewItem.Remove:
foreach (ListViewItem item in lstImgAdded.SelectedItems)
{
item.Remove();
}
另外,你应该注意两点:
不能使用ListView.SelectedListViewItemCollection.Remove,因为它是read-only(参见“备注”部分或implementation):
这是一种罕见的情况,当可以安全地修改序列时,在迭代它时,因为ListView.SelectedListViewItemCollection.GetEnumerator 返回选定项目的“快照”的枚举器。
【讨论】: