我知道如何从checkedlistbox
中删除单个checkedItem
。但现在,我想一次性删除所有选中的项目。
我试过这个:
foreach (var item in List_Frente.CheckedItems)
{
List_Frente.Items.Remove(item);
}
但正如你可能知道的,它给了我一个错误,说,List that this enumerator is bound to has been modified. An enumerator can only be used if the list does not change.
我如何可以删除所有的checkeditems
与一个单一的点击?
6条答案
按热度按时间iyzzxitl1#
你可以这样做:
如果您想在一行中写入所有内容:
当然,这只有在你的物品是相同类型的情况下才有效。不过看起来还是很粗糙。
编辑-解释:
ToList()
创建了一个新的列表,因此,原来的CheckedItems列表可以被更改,因为枚举器现在枚举的是我们新创建的列表,而不是原来的列表。OfType<string>()
在那里只是因为我们需要一些东西来调用ToList()
。vkc1a9a22#
7fhtutme3#
这是因为您修改了正在迭代的列表。使用for语句可以防止这种情况发生:
如this MSDN-Article中所述,
CheckedListBox.CheckedItemCollection
显式实现了IList.Remove
-方法,这意味着您必须将示例转换为IList
才能使其正常工作。camsedfj4#
可能是这个帖子的插件。
清除所有项目。
7d7tgy0s5#
这很管用。
我的目标是带着一个更漂亮、更少陈腐的解决方案回来。
m0rkklqb6#
您可以尝试以下解决方案: