编程语言
首页 > 编程语言> > c# – 枚举器问题,有什么方法可以避免两个循环?

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,loops,enumerator
来源: https://codeday.me/bug/20190713/1445181.html