我有一个第三方api,它有一个类,它返回类中不同项的枚举器.
我需要删除该枚举器中的项目,因此我不能使用“for each”.我能想到的唯一选择是通过遍历枚举来获取计数,然后运行正常的for循环来删除项目.
有人知道避免这两个循环的方法吗?
谢谢
[更新]抱歉混淆,但安德烈在评论中是正确的.
这是我脑子里的一些伪代码无法正常工作,我正在寻找一个不会涉及两个循环的解决方案,但我想这是不可能的:
for each (myProperty in MyProperty)
{
if (checking some criteria here)
MyProperty.Remove(myProperty)
}
MyProperty是实现枚举器和remove方法的第三方类.
解决方法:
常见的模式是做这样的事情:
List<Item> forDeletion = new List<Item>();
foreach (Item i in somelist)
if (condition for deletion) forDeletion.Add(i);
foreach (Item i in forDeletion)
somelist.Remove(i); //or how do you delete items