• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#、foreachを使ってハッシュテーブルの変更)

C#ハッシュテーブルの値書き換え

このQ&Aのポイント
  • C#のハッシュテーブルの値をforeachを使って書き換える方法について教えてください。
  • 連想配列の特定のキーに対応する値を書き換えるためのforeachの使用方法について教えてください。
  • C#の連想配列で特定のキーに対応する値を書き換えるための最適な方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

IEnumeratorは元のコレクションが変更になるとMoveNextがInvalidOperationExceptionを発生させます。 # というように実装されます。 このため,IDictionary<TK, TV>から直接取得したIEnumeratorを回している最中に元のIDictionaryを変更できません。 # 面倒なので,最初以外ジェネリックパラメータを省略しています。以下も省略します。 ただし,元のIDictionary以外から取得したIEnumeratorを回しているのであれば,IDictionaryを変更しても問題が無いので,たとえば, foreach (var kv in 連想配列.ToArray()) // required: using System.Linq; とか, foreach (var kv in new List<KeyValuePair<string, int>>(連想配列)) とかすれば,元のIDictionary (ここでは「連想配列」) を修正可能です。

その他の回答 (1)

回答No.1

意外とできないもんだね。とりあえずこうやったけど。 http://ideone.com/hFPMF