1,定义
命名空间:
System.Collections
程序集:
System.Collections.NonGeneric.dll
继承:
Object—> SortedList
实现:
ICollection IDictionary IEnumerable ICloneable
2,注解
SortedList对象在内部维护两个用于存储列表元素的数组; 即,一个数组用于存储键,另一个数组用于关联值。 每个元素都是一个可作为对象进行访问的键/值对 DictionaryEntry 。 键不能为 null ,但值可以为。
对象的容量 SortedList 是可容纳的元素数 SortedList 。 向添加元素时,会 SortedList 根据需要通过重新分配来自动增加容量。 可以通过调用 TrimToSize 或显式设置属性来减少容量 Capacity 。
仅 .NET Framework: 对于非常大的 SortedList 对象,可以通过 enabled <gcAllowVeryLargeObjects> true 在运行时环境中将配置元素的属性设置为,来将64位系统上的最大容量增加到2000000000个元素。
对象的元素 SortedList 根据创建时指定的特定实现进行排序, IComparer SortedList 或根据 IComparable 键本身提供的实现进行排序。 在任一情况下,都 SortedList 不允许使用重复键。
索引顺序基于排序顺序。 添加元素时,该元素 SortedList 以正确的排序顺序插入,并且索引会相应地进行调整。 删除元素时,索引编制还会相应地进行调整。 因此,当在对象中添加或删除元素时,特定键/值对的索引可能会更改 SortedList 。
由于排序,对对象的操作 SortedList 往往比对象上的操作慢 Hashtable 。 但是, SortedList 通过允许通过关联的键或索引来访问值,可以提供更大的灵活性。
可以使用整数索引访问此集合中的元素。 此集合中的索引从零开始。
3,SortedList 类的方法和属性
1,属性
属性 | 描述 |
---|---|
Capacity | 获取或设置 SortedList 的容量。 |
Count | 获取 SortedList 中的元素个数。 |
IsFixedSize | 获取一个值,表示 SortedList 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 SortedList 是否只读。 |
Item | 获取或设置与 SortedList 中指定的键相关的值。 |
Keys | 获取 SortedList 中的键。 |
Values | 获取 SortedList 中的值。 |
2,方法
Add(Object,Object) | 将带有指定键和值的元素添加到 SortedList 对象。 |
Clear() | 从 SortedList 对象中移除所有元素。 |
Clone() | 创建 SortedList 对象的浅表副本。 |
Contains(Object) | 确定 SortedList 对象是否包含特定键。 |
ContainsKey(Object) | 确定 SortedList 对象是否包含特定键。 |
ContainsValue(Object) | 确定 SortedList 对象是否包含特定值。 |
CopyTo(Array,Int32) | 从指定数组索引开始将 SortedList 元素复制到一维 Array 对象中。 |
Equals(Object) | 确定指定对象是否等于当前对象。 (继承自 Object) |
GetByIndex(Int32) | 获取 SortedList 对象的指定索引处的值。 |
GetEnumerator() | 返回一个循环访问 IDictionaryEnumerator 对象的 SortedList 对象。 |
GetHashCode() | 作为默认哈希函数。 (继承自 Object) |
GetKey(Int32) | 获取 SortedList 对象的指定索引处的键。 |
GetKeyList() | 获取 SortedList 对象中的键。 |
GetType() | 获取当前实例的 Type。 (继承自 Object) |
GetValueList() | 获取 SortedList 对象中的值。 |
IndexOfKey(Object) | 返回 SortedList 对象中指定键的从零开始的索引。 |
IndexOfValue(Object) | 返回指定的值在 SortedList 对象中第一个匹配项的从零开始的索引。 |
MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object) |
Remove(Object) | 从 SortedList 对象中移除带有指定键的元素。 |
RemoveAt(Int32) | 移除 SortedList 对象的指定索引处的元素。 |
SetByIndex(Int32,Object) | 替换 SortedList 对象中指定索引处的值。 |
Synchronized(SortedList) | 返回 SortedList 对象的同步(线程安全)包装。 |
ToString() | 返回表示当前对象的字符串。 (继承自 Object) |
TrimToSize() | 将容量设置为 SortedList 对象中元素的实际数目。 |
实例:
using System;
using System.Collections;
public class SamplesSortedList {
public static void Main() {
// Creates and initializes a new SortedList.
SortedList mySL = new SortedList();
mySL.Add("Third", "!");
mySL.Add("Second", "World");
mySL.Add("First", "Hello");
// Displays the properties and values of the SortedList.
Console.WriteLine( "mySL" );
Console.WriteLine( " Count: {0}", mySL.Count );
Console.WriteLine( " Capacity: {0}", mySL.Capacity );
Console.WriteLine( " Keys and Values:" );
PrintKeysAndValues( mySL );
}
public static void PrintKeysAndValues( SortedList myList ) {
Console.WriteLine( "\t-KEY-\t-VALUE-" );
for ( int i = 0; i < myList.Count; i++ ) {
Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) );
}
Console.WriteLine();
}
}
/*
This code produces the following output.
mySL
Count: 3
Capacity: 16
Keys and Values:
-KEY- -VALUE-
First: Hello
Second: World
Third: !
*/