可能性の重複を反復処理しながら、私は、反復処理し、いくつかの操作を行う際に
Modifying .NET Dictionary while Enumerating through it削除辞書に
私は辞書オブジェクトを持っています。条件に基づいて私は削除するか、私は現在繰り返しているキー値のペアを保持する必要があります。それを反復しながら辞書からキー値のペアを削除する最善の方法は何ですか?
おかげ
可能性の重複を反復処理しながら、私は、反復処理し、いくつかの操作を行う際に
Modifying .NET Dictionary while Enumerating through it削除辞書に
私は辞書オブジェクトを持っています。条件に基づいて私は削除するか、私は現在繰り返しているキー値のペアを保持する必要があります。それを反復しながら辞書からキー値のペアを削除する最善の方法は何ですか?
おかげ
削除したいキーのリストを見つけて保存します。次に、完了したら、保存した各キーに対してmyDictionary.Remove(key)
を呼び出して、このリストを繰り返します。
別の辞書を使用して、キー値をマークして、保存する必要がある挿入キーの値を削除してみてください。これを繰り返します。これはold_map = new_mapです。
これは2回の繰り返しを意味し、1つはファイルを削除し、もう1つはアイテムを削除するために、削除したくないアイテムを他の辞書にコピーしないのはなぜですか? –
@乳酸塩 - 私は正直言ってそのことを考えていませんでした。同じ辞書で終わるべき魅力的な理由がなければ、ほとんどの場合、より効率的になると期待しています。 – Rawling
"削除したくないアイテムを他の辞書にコピーしないのはなぜですか?" 削除が予想されるアイテムの数がごくわずかであるか、または削除がめったにない場合、これは非常に機能しません。したがって、推奨事項はデータアクセスパターンに依存します – Imi