复制
有没有人有一个很好的模式可以让我在循环遍历可枚举集合(例如,字典中的 IList 或 KeyValuePairs)时解决无法删除对象的问题
例如,以下失败,因为它修改了在 foreach 期间枚举的列表
foreach (MyObject myObject in MyListOfMyObjects)
{
if (condition) MyListOfMyObjects.Remove(myObject);
}
过去我使用了两种方法。
我已将 foreach 替换为反向 for 循环(以免在删除对象时更改我正在循环的任何索引)。
我还尝试存储一个新的对象集合以在循环中删除,然后遍历该集合并从原始集合中删除对象。
这些工作正常,但都感觉不好,我想知道是否有人想出了一个更优雅的解决方案