首页 理论教育 C#编程新手自学手册-SortedList集合类初步

C#编程新手自学手册-SortedList集合类初步

时间:2023-10-22 理论教育 版权反馈
【摘要】:SortedList是表示键值对的集合,通过这些键值可以对按键进行排序,并且可以按照按键和索引进行访问处理。在具体使用上,SortedList和Hashtable极其类似。SortedList类的常用属性如表9-9所示。SortedList的容量是SortedList可以保存的元素数量,默认值为0。当把新元素添加到SortedList后,将根据需要而自动增加容量。实例37:使用SortedList集合类处理数组数据下面将通过一个简单的实例来说明使用SortedList集合类的流程。2)定义命名空间SortedListjihe和Test类。SortedList是Hashtable和Array的结合体。SortedList的容量是列表可拥有的元素数。

C#编程新手自学手册-SortedList集合类初步

SortedList是表示键值对的集合,通过这些键值可以对按键进行排序,并且可以按照按键和索引进行访问处理。在具体使用上,SortedList和Hashtable极其类似。

SortedList类的常用属性如表9-9所示。

表9-9 SortedList类的常用属性

978-7-111-36370-5-Part02-247.jpg

SortedList类的常用方法(函数)如表9-10所示。

表9-10 SortedList类的常用方法

978-7-111-36370-5-Part02-248.jpg

(续)

978-7-111-36370-5-Part02-249.jpg

其中,可以通过键或值来访问SortedList内的元素。在SortedList内将维护两个数组来存储列表内元素,其中将一个数组存储键,另一个数组用于相对应的值。

SortedList的容量是SortedList可以保存的元素数量,默认值为0。当把新元素添加到SortedList后,将根据需要而自动增加容量。可以通过TimeToSize和设置Capacity()属性来改变容量。

注意

SortedList需要进行排序处理,所以用SortedList处理的速度要慢于Hashtable的处理。但是Capacity允许通过关联键或索引对值进行访问,从而提供更大的灵活性。

实例37:使用SortedList集合类处理数组数据

下面将通过一个简单的实例来说明使用SortedList集合类的流程。本实例保存在“光盘:\daima\9”文件夹内,项目名为SortedListjihe。本实例的功能是,向数组内添加数据,并输出显示处理后的数组数据。实例文件的主要代码如下:

978-7-111-36370-5-Part02-250.jpg(www.xing528.com)

978-7-111-36370-5-Part02-251.jpg

上述实例代码的设计流程如下。

1)通过using调用System.Collections类。

2)定义命名空间SortedListjihe和Test类。

3)通过SortedList集合类初始化nn,然后通过Add()方法向nn内添加八个键值。其中键为数字格式,值为文本格式。

4)通过for语句获取当前数组内的数据。

5)输出显示数组内的当前数据。

执行后将输出显示添加处理后的数组数据,如图9-13所示。

978-7-111-36370-5-Part02-252.jpg

图9-13 实例执行结果

从图9-13所示结果可以看出,虽然添加时的顺序是无序的,但是添加到nn后,会根据键的序号进行排序处理。

多学一招

因为SortedList需要进行排序处理,所以用SortedList处理的速度要慢于Hashtable的处理。但是Capacity允许通过关联键或索引对值进行访问,从而提供更大的灵活性。

SortedList是Hashtable和Array的结合体。当使用Item索引器属性按照元素的键访问元素时,其行为类似于Hashtable。当使用GetByIndex或SetByIndex按照元素的索引访问元素时,其行为类似于Array。SortedList在内部维护两个数组以将数组存储到列表中;即一个数组用于键,另一个数组用于相关联的值。每个元素都是一个可作为DictionaryEntry对象进行访问的键/值对。键不能为空引用(Visual Basic中为Nothing),但值可以。

SortedList的容量是列表可拥有的元素数。当向SortedList中添加元素时,容量通过重新分配按需自动增加。可通过调用TrimToSize或通过显式设置Capacity()属性来减小容量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈