C#中的集合有几种.doc

上传人:小** 文档编号:88201264 上传时间:2019-04-20 格式:DOC 页数:3 大小:34KB
返回 下载 相关 举报
C#中的集合有几种.doc_第1页
第1页 / 共3页
C#中的集合有几种.doc_第2页
第2页 / 共3页
C#中的集合有几种.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C#中的集合有几种.doc》由会员分享,可在线阅读,更多相关《C#中的集合有几种.doc(3页珍藏版)》请在金锄头文库上搜索。

1、C#中的集合有几种?ArrayArrayListListStackQueueDictionaryHashTable 集合,表示可以通过遍历每个元素来访问的一组对象(特别是可使用foreach循环访问)一个集合包括多个元素,即有一个集合类对象和N个元素对象因为任何集合类都实现了IEnumerable接口,所以任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了 IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类对象,它是一个独立的类对象。通过这个对象,可以遍历访问集合类对象中的每一个元素对象如果集合类是用户自定

2、义的集合类,则用户必须实现它的GetEnumerator()方法,否则不能使用循环。当然,与这个自定义集合类对应的IEnumerator类(实现了该接口的类),也要自定义一个才行比如,ArrayList集合类对应的IEnumerator是 ArrayListEnumeratorSimple Array集合类对应的IEnumerator是 SZArrayEnumerator (这两个类在.net framework类库文档(msdn)中都没有介绍)1.System.Colloctions中表示集合的行为的接口有:1)ICollection定义所有集合的大小、枚举数和同步方法。派生于IEnumer

3、able它定义了集合类最基本的行为,所有的集合类都实现了这个接口(基接口)但是它的行为太过基本:主要就是一个Count属性,单独实现它没有太大意义2)IEnumerable公开枚举数,该枚举数支持在集合上进行简单迭代它只有一个方法 GetEnumerator(),该方法可以返回一个IEnumerator接口,通过它可以遍历集合基本上所有的集合类都实现了这个接口3)IListIList实现是可排序且可按照索引访问其成员的值的集合,它本身实现了ICollection和IEnumerable接口是所有列表的抽象基类。IList 实现有三种类别:只读、固定大小、可变大小。4)IDictionaryID

4、ictionary实现是键/值对的集合,它本身实现了ICollection和IEnumerable接口是键/值对的集合的基接口。IDictionary 实现有三种类别:只读、固定大小、可变大小。IDictionary可称为字典、映射或散列表,它根据键(任意类型)来访问值2.System.Collections中可以直接使用的集合类有:1)ArrayList实现了接口:IList、ICollection、IEnumerable只要集合未被修改,ArrayList 就可安全地同时支持多个读取器随着向 ArrayList 中添加元素,容量通过重新分配按需自动增加(2倍增加)如果需要建立一个对象数组,

5、但不能预先知道数组的大小,就可以使用ArrayListArrayList把所有元素都当作object对象引用,因而在访问ArrayList的元素时要进行类型转换优点:动态改变大小、灵活方便的插入和删除元素、可排序缺点:插入时性能不如数组、不是强类型的2)BitArray实现了接口:ICollection、IEnumerable管理位值的压缩数组。3)Hashtable实现了接口:IDictionary、ICollection、IEnumerable可以向Hashtable中自由添加和删除元素,有些像ArrayList,但没有那么大的性能开销4)SortedList实现了接口:IDictiona

6、ry、ICollection、IEnumerableSortedLIst兼顾了ArrayList和Hashtable的优点,可按键值来排序5)Queue实现了接口:ICollection、IEnumerableQueque是队列,先进先出的访问各个元素可以调用Queque对象的GetEnumerator()方法,得到IEnumerator对象,来遍历队列中的各个元素6)Stack实现了接口:ICollection、IEnumerableStack是堆栈,后进先出的访问各个元素可以调用Stack对象的GetEnumerator()方法,得到IEnumerator对象,来遍历堆栈中的各个元素3.上面提到的几种集合类,他们都是通用的集合类,他们所接受的元素大都是Object类型,当对象放入了集合之后,都失去了原有的类型信息即这些通用集合类都不是强类型的解决办法是使用强类型的集合类System.Collections命名空间下的CollectionBase,DictionaryBase,ReadOnlyCollectionBase 类System.Collections.Specialized命名空间下的一些类可以满足要求,可以直接使用也可以继承

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号