나는 사전이 있습니다사전 항목을 반복하는 동안 값을 업데이트하는 방법은 무엇입니까?
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;
}
이 나에게 말하는 오류를주고있다
누구나 왜이 오류를 내게 알려줄 수 있습니까? 왜냐하면 값을 추가하는 함수가 하나 더 있고 버튼을 클릭 할 때 호출되기 때문입니다.
public static void Increment(string RepId, int amount)
{
long _value = Convert.ToInt64(Reps[RepId]);
_value = _value + amount;
Reps[RepId] = _value;
}
이 함수는 정상적으로 작동합니다. 그래서 모든 값을 업데이트 할 때 문제가 무엇입니까? 그리고 이것에 대한 해결책은 무엇입니까?
의 wokring하지만 당신은 하나 답했다 생성 내 questi의 일부 해결책에 대해 ... 오류의 원인에 대해 자세히 설명 할 수 있습니까? –
foreach는 컬렉션을 기반으로하기 때문에 추측합니다. 컬렉션을 변경하면 foreach가 처리 할 부분을 결정할 수 있습니까? 예 : 반복하는 동안 새 Reps [x]를 추가하면 foreach에 참여할 것인지 아닌지 예상 할 수 있습니까? – Pleun