[Homework] Data Structure Efficiency: Problem 2 - BiDictionary
Здравейте,
Имам следният проблем с Remove метода на втора задача. Ето го и него: http://pastebin.com/0suf9UvZ
Взимам стойностите по двата ключа и ги запазвам в колекцията values. След това правя форийч на values и след минаването на първата променлива ми гърми със exception че променям колекцията, а всъшност аз не го правя. Като сложа един ToList на values всичко си минава, но знам, че това не е правилният начин. Ето го и Find метода http://pastebin.com/wFxCbwsr. Ако някой може да ми обясни защо става така ще съм много благодарен.
Благодаря предварително!
Пробвах това, което каза. Директно от valuesByBothKeyes.Remove(tuple); и след това колекцията values спря да гърми, явно наистина е имало някаква зависимост между тях
ето го кода на Remove http://pastebin.com/JRqrDX9r
Така изглежда Remove() работи коректно. Ти реално се опитваше да направиш нещо от рода на:
foreach (var value in this.valuesByBothKeys[tuple])
{ this.valuesByBothKeys[tuple].Remove(value); }
Понеже var values = this.Find(key1, key2) = this.valuesByBothKeys[tuple];