C# SortedList 和 SortedDictionary集合类型
System.Collections.SortedList 类、System.Collections.Generic.SortedList 泛型类和 System.Collections.Generic.SortedDictionary 泛型类类似于 Hashtable 类和 Dictionary 泛型类,因为它们也实现 IDictionary 接口,但是它们以基于键的排序顺序维护元素,没有哈希表的 O(1) 插入和检索特性。这三个类具有若干共性:
三个类都实现 System.Collections.IDictionary 接口。两个泛型类还实现 System.Collections.Generic.IDictionary 泛型接口。
每个元素是一个键/值对,以进行枚举。
注意 非泛型 SortedList 类在被枚举时返回 DictionaryEntry 对象,而两个泛型类则返回 KeyValuePair 对象。
元素按照 System.Collections.IComparer 实现(对于非泛型 SortedList)或 System.Collections.Generic.IComparer 实现(对于两个泛型类)排序。
每个类提供了返回仅包含键或仅包含值的集合的属性。
下表列举两个排序的列表类与 SortedDictionary 类之间的一些区别。
SortedList 非泛型类和 SortedList 泛型类 SortedDictionary 泛型类 返回键和值的属性是有索引的,从而允许高效的索引检索。
无索引的检索。
检索的运算复杂度为 O(log n)。
检索的运算复杂度为 O(log n)。
插入和移除的运算复杂度一般为 O(n);但是,对于已经处于排序顺序的数据,插入操作的运算复杂度为 O(1),因此每个元素都被添加到列表的末尾。(这假设不需要调整大小。)
插入和移除的运算复杂度为 O(log n)。
比 SortedDictionary 使用更少的内存。
比 SortedList 非泛型类和 SortedList 泛型类使用更多内存。
注意 对于包含自己的键的值(例如,包含雇员 ID 编号的雇员记录),可以通过从 KeyedCollection 泛型类派生创建带键的集合,该集合具有列表的一些特征和字典的一些特征。
补充:软件开发 , C# ,