些时候在Dictionary中Add添加键值对后,并不是直接加到Dictionary的最后面,遍历时元素的顺序不是元素添加的先后顺序。
因为字典Dictionary并不是有序存储的,在删除中间某个元素后,会留下一个空位,后续添加元素会填到这个空位,导致顺序“错乱”。
Dictionary实现原理参考:浅谈C# Dictionary实现原理
代码演示:Log结果显示,字典内元素顺序是"1,2,6,4,5",而不是"1,2,4,5,6"。
Dictionary<int, string> testDic = new Dictionary<int, string>();
testDic.Add(1, "111");
testDic.Add(2, "222");
testDic.Add(3, "333");
testDic.Add(4, "444");
testDic.Add(5, "555");
testDic.Remove(3);
testDic.Add(6, "666");
foreach (var item in testDic)
{
Debug.Log(item.Value);
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_39108767/article/details/108538366