【问题标题】:Cannot remove items from ListBox无法从列表框中删除项目
【发布时间】:2010-08-10 02:45:47
【问题描述】:

尝试运行此方法时出现错误:

此枚举器绑定的列表已被修改。枚举器只能在列表不变的情况下使用。

foreach (var item in lstPhotos.SelectedItems)
{
    lstPhotos.Items.Remove(item);
}

如何删除选定的项目?

【问题讨论】:

标签: c# listbox


【解决方案1】:
while(lstPhotos.SelectedItems.Count != 0)
{
    lstPhotos.Items.Remove(lstPhotos.SelectedItems[0]);
}

【讨论】:

    【解决方案2】:

    foreach 循环不允许您修改正在枚举的集合。如果您需要修改集合,请改用 for 循环。

    编辑:

    我在上面留下了我原来的答案,但是在编码之后很明显,由于 SelectedItems 属性的动态长度,while 循环更适合这个问题。

    while(lstPhotos.SelectedItems.Length > 0)
    {
        lstPhotos.Items.Remove(lstPhotos.SelectedItems[0];
    }
    

    【讨论】:

    • 我怎样才能访问每个单独的项目?
    • while 循环也可能是合适的。有SelectedItem之类的属性吗?您知道,这完全取决于您使用的特定集合/库。
    • 谢谢,我更改了答案,以便对您的建议更有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多