私は辞書があります。ディクショナリ項目の反復処理中に値を更新する方法はありますか?
Dictionary<string, long> Reps = new Dictionary<string, long>();
をし、このように、すべてのアイテムを反復しながら、私は値を更新する:
"Collection was modified; enumeration operation may not execute"
:
foreach (string key in Reps.keys)
{
Reps[key] = 0;
}
が、それは私に言って、エラーを与えています
値を追加する関数がもう1つあり、ボタンをクリックしたときに呼び出される理由は誰にでもわたしにこのエラーが表示される理由を教えてください。
public static void Increment(string RepId, int amount)
{
long _value = Convert.ToInt64(Reps[RepId]);
_value = _value + amount;
Reps[RepId] = _value;
}
この機能は正常に動作しています。すべての値を更新するときの問題は何ですか?そして、これのための解決策は何ですか?
そのwokringの新しいオブジェクトを作成したが、一つだけに答えています私のクエストの一部解決策に...あなたはエラーの理由は何かについてもっと説明できますか? –
foreachはコレクションに基づいていると思います。コレクションを変更すると、foreachはどのような部分を処理するのか、どうしたらいいのかを判断できますか?例えば。反復中に新しいReps [x]を追加すると、foreachに参加するかどうかが分かりますか? – Pleun