c# – 枚举器问题,有什么方法可以避免两个循环?

我有一个第三方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 
上一篇:c# – 如何告诉DataContract使用基类的GetEnumerator?


下一篇:c# – 枚举器作为参数