System.InvalidOperationException: Collection was modified; enumeration operation may not execute..
foreach(var book in mCart){ if(book.Value > 0) mCart[book.Key]--;}
Die foreach-Anweisung fungiert als Wrapper für den Enumerator, der nur das Lesen aus der Auflistung, nicht jedoch das Schreiben in diese zulässt.
Dictionary<string, int> test = new Dictionary<string, int>(); test.Add("eins", 0); test.Add("zwei", 3); test.Add("drei", 5); foreach (string tmp in new LinkedList<string>(test.Keys)) { if (test[tmp] > 0) { test[tmp]--; } } foreach (KeyValuePair<string, int> t in test) { Console.WriteLine(t.Key+" "+t.Value); } Console.ReadKey();