【发布时间】:2010-08-10 02:45:47
【问题描述】:
尝试运行此方法时出现错误:
此枚举器绑定的列表已被修改。枚举器只能在列表不变的情况下使用。
foreach (var item in lstPhotos.SelectedItems)
{
lstPhotos.Items.Remove(item);
}
如何删除选定的项目?
【问题讨论】:
尝试运行此方法时出现错误:
此枚举器绑定的列表已被修改。枚举器只能在列表不变的情况下使用。
foreach (var item in lstPhotos.SelectedItems)
{
lstPhotos.Items.Remove(item);
}
如何删除选定的项目?
【问题讨论】:
while(lstPhotos.SelectedItems.Count != 0)
{
lstPhotos.Items.Remove(lstPhotos.SelectedItems[0]);
}
【讨论】:
foreach 循环不允许您修改正在枚举的集合。如果您需要修改集合,请改用 for 循环。
编辑:
我在上面留下了我原来的答案,但是在编码之后很明显,由于 SelectedItems 属性的动态长度,while 循环更适合这个问题。
while(lstPhotos.SelectedItems.Length > 0)
{
lstPhotos.Items.Remove(lstPhotos.SelectedItems[0];
}
【讨论】:
while 循环也可能是合适的。有SelectedItem之类的属性吗?您知道,这完全取决于您使用的特定集合/库。