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

来源:互联网 发布:手机数据恢复无需root 编辑:程序博客网 时间:2024/04/28 15:53

如何在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自然就不存在这个问题了

0 0
原创粉丝点击