您的位置:首页 > 其它

如何在foreach中删除一个集合中的元素

2016-08-02 15:04 281 查看
如何在foreach中删除一个集合中的元素,其实很简单,只用一个递归就可以了,例如下面的一个代码判断一个listbox里面的items都是checkbox其中被选中的全部都删除

void removef()
{
foreach (CheckBox item in lst.Items)
{
if (item.IsChecked == true)
{
lst.Items.Remove(item);
removef();
return;
}
}
}


这样就OK了,因为你在foreach中删除多个元素的话,它的会抛出一个异常说集合以修改,无法用枚举信息,因为你删除了一个元素以后集合中的元素数量已经变了,但是foreach还是用的以前的长度,所以就会出现这个(InvalidOperationException)用递归的话每次删除以后都是新的foreach自然就不存在这个问题了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: