我目前正在将字词添加到字典中,如下所示。
private Dictionary<string, Dictionary<string, object>> mydict = new Dictionary<string, Dictionary<string, object>>();
mydict.Add("string1", classobject1);
最后我想添加&#34; stringN&#34;和classobjectN,但我希望将它添加为字典中的第一项。
上述情况可能吗?
答案 0 :(得分:4)
字典不保留插入顺序。来自文档:https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx
出于枚举的目的,字典中的每个项都被视为表示值及其键的KeyValuePair结构。返回项目的顺序未定义。
答案 1 :(得分:3)
上述情况可能吗?
不,这是不可能的。
存储在字典中的项目不会按照它们添加到字典中的顺序存储,就像在列表中一样。如果您查看用于实现列表和字典的数据结构,可以解释发生这种情况的原因。在列表的情况下,使用数组。每当数组被填充时,将创建另一个double size数组,并将第一个数组的元素复制到新数组。然后,您要添加的项目将添加到新阵列中。另一方面,在字典的情况下,使用哈希表。您可以查看here,以便刷新在哈希表中添加新项目的方式。