Ben bir sözlük var:Sözlük öğeleri yinelenirken değerleri nasıl güncellersiniz?
Dictionary<string, long> Reps = new Dictionary<string, long>();
ve bunun gibi tüm öğeler arasında yineleme ederken değerlerini güncellemek istiyorum:
"Collection was modified; enumeration operation may not execute"
:
foreach (string key in Reps.keys)
{
Reps[key] = 0;
}
bana bildiren bir hata veriyor
bana neden bu hatayı verdiğimi söyleyen var, çünkü değeri ekleyen bir tane daha fonksiyonum var ve buton tıklandığında çağrılır:
public static void Increment(string RepId, int amount)
{
long _value = Convert.ToInt64(Reps[RepId]);
_value = _value + amount;
Reps[RepId] = _value;
}
ve bu fonksiyon iyi çalışıyor. Yani tüm değerleri güncellerken sorun nedir? Ve bunun için çözüm nedir?
onun wokring ama yalnızca bir kez oluşturulan benim arayışımın bir parçası Çözüm üzerinde ... hatanın sebebi hakkında daha fazla bilgi verebilir misiniz? –
Peki, çünkü foreach koleksiyona dayanıyor ve eğer koleksiyonu değiştirecekseniz, foreach hangi parçaların işleneceğini ve ne yapamayacağını nasıl belirleyebilir? Örneğin. yineleme sırasında yeni bir Reps [x] eklerseniz, foreach'a katılmayı bekler miydiniz değil mi? – Pleun