这似乎是这个问题的重复,它询问“ SortedList和SortedDictionary之间有什么区别?” 不幸的是,答案只不过是引用了 MSDN 文档(其中明确指出两者之间存在性能和内存使用差异),但实际上并没有回答这个问题。
事实上(所以这个问题没有得到相同的答案),根据 MSDN:
SortedList<TKey, TValue>
泛型类是具有 O(log n) 检索的二叉搜索树,其中 n 是字典中元素的数量。在这方面,它类似于SortedDictionary<TKey, TValue>
泛型类。这两个类具有相似的对象模型,并且都具有 O(log n) 检索。这两个类的不同之处在于内存使用和插入和删除速度:
SortedList<TKey, TValue>
使用的内存少于SortedDictionary<TKey, TValue>
.
SortedDictionary<TKey, TValue>
对未排序的数据具有更快的插入和删除操作,O(log n) 而不是 O(n) forSortedList<TKey, TValue>
.如果列表是从排序的数据中一次性填充的,
SortedList<TKey, TValue>
则比SortedDictionary<TKey, TValue>
.
因此,显然这表明这SortedList<TKey, TValue>
是更好的选择,除非您需要对未排序的数据进行更快的插入和删除操作。
鉴于上述信息,问题仍然存在,使用SortedDictionary<TKey, TValue>
? 根据性能信息,这意味着根本没有必要拥有SortedDictionary<TKey, TValue>
。