我想一切都在标题中......
我知道Dictionary<TKey,TValue>
确实会按附加顺序保留 key ,但前提是您不删除任何 key ,而且无论如何此行为都没有记录并且不能依赖(有关详细信息,请参见 this question)。
基本上,如果我想要有序的键/值对集合,我应该使用什么集合,同时保持 O(1) 访问时间? ( List<KeyValuePair<K,V>>
不是一个好的选择,因为它的访问时间为 O(n))。我不认为 BCL 中有类似的东西,但我只是想在我自己动手之前确定......
只是为了让大家明白:我不想让键排序,我只想让它们保持加法顺序。所以SortedList
/SortedDictionary
不是我要找的...
最佳答案
你能不能只保留一个 List
和一个 Dictionary
来让你查找键在列表中的位置?这将允许您按添加顺序获取键/值对,但仍保持 O(1)
查找。
关于.net - 是否有一个 IDictionary 实现可以按照添加的顺序保存键? (未排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8043125/