我想一切都在标题中...
我知道Dictionary<TKey,TValue>
确实会按附加顺序保留键,但前提是您不删除任何键,而且无论如何,这种行为没有记录在案,也无法依靠(有关详细信息,请参见this question)。
基本上,如果我想要有序的键/值对集合,同时又保持O(1)访问时间,应该使用什么集合? (List<KeyValuePair<K,V>>
不是一个好的选择,因为它具有O(n)访问时间)。我认为BCL中没有类似的东西,但是我只是想确定自己是否要推出自己的东西...
只是要向所有人清楚:我不希望对键进行排序,我只是希望它们按附加顺序保留。所以SortedList
/ SortedDictionary
不是我想要的...
最佳答案
您能否仅保留一个List
和Dictionary
来查找键在列表中的位置?这将允许您按添加顺序获取键/值对,但仍保持O(1)
查找。