迭代字典时删除

时间:2012-03-27 15:35:01

标签: c#

  

可能重复:
  Modifying .NET Dictionary while Enumerating through it

当我迭代并做一些操作时,我有一个字典对象。基于条件我应该删除或保持我正在迭代的keyvalue对。在迭代时从字典中删除keyvaluepair的最佳方法是什么?我试图使用一个单独的字典对象来跟踪要删除的元素,但我不知道如何使用它从我的主字典中删除,或者这是否是最有效的方法

由于

2 个答案:

答案 0 :(得分:14)

在找到时,保留要删除的键列表。然后,完成后,遍历此列表,在您存储的每个密钥上调用myDictionary.Remove(key)

答案 1 :(得分:4)

尝试使用单独的字典,而不是标记键值以删除要保留的插入da键值,并且在迭代和迭代时执行以下操作:old_map = new_map。