Dictionary<string, int> testdic = new Dictionary<string, int>();
testdic.Add("cat", 1);
testdic.Add("dog", 2);
testdic.Add("rat", 3);
testdic.Remove("cat");
testdic.Add("bob", 4);
Заполните словарь, а затем удалите первый элемент. Затем добавьте новый элемент. Затем Боб появляется в позиции 1, а не в конце, поэтому он, кажется, запоминает удаленные записи и повторно использует это пространство памяти?
Это где-то задокументировано, потому что я не вижу его в MSDN, и это вызвало у меня день скорби, потому что я предполагал, что это только добавит к концу.