Jon*_*Jon 2 .net c# dictionary .net-3.5
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);
Run Code Online (Sandbox Code Playgroud)
填写字典,然后删除第一个元素.然后添加一个新元素.鲍勃然后出现在位置1而不是最后,因此它似乎记得删除了条目并重新使用该内存空间?
这是在任何地方记录的,因为我无法在MSDN上看到它并且让我感到悲伤,因为我认为它会不断添加到最后.
Luk*_*keH 15
它没有记录,因为它只是一个实现细节.
实施可能随时改变.(除非您仔细检查了源代码,否则您甚至无法确定您对当前实现的假设是否准确.)
该Dictionary<K,V>类型不保证以任何特定顺序存储其元素,并且您不应该依赖于您碰巧观察到的任何未记录的行为.字典是从键到值的映射,而不是有序列表.
从MSDN文档:
出于枚举的目的... [t]返回项目的顺序未定义.