集合

在C#中,任意类型的对象都可以放到集合中,并将其视为Object类型。同时,系统集合类中提供了对多种数据结构及算法的实现,如队列,堆栈,链表,排序等。

1.可以使用集合来维护对象组。集合可以包含更高级的功能,例如,控制对它们包含的对象的访问、搜索和排序等。

2.C#中的数组实现为System.Array 类的实例,它们只是集合类(Collection Classes)中的一种类型。集合类一般用于处理对象列表,其功能比简单数组要多,功能大多是通过实现System.Collections 名称空间中的接口而获得的。

3.集合的功能(包括基本功能,例如,用[index]语法访问集合中的项)可以通过接口来实现,该接口不仅没有限制我们使用基本集合类,例如System.Array,相反,我们还可以创建自己的定制集合类。

4.System.Collections 名称空间中的几个接口提供了基本的组合功能:

IEnumerable 可以迭代集合中的项。

ICollection(继承于IEnumerable)可以获取集合中项的个数,并能把项复制到一个简单的数组类型中。

IList(继承于IEnumerable 和ICollection)提供了集合的项列表,允许访问这些项,并提供其他一些与项列表相关的基本功能。

IDictionary(继承于IEnumerable 和ICollection)类似于IList,但提供了可通过键值(而不是索引)访问的项列表。

5.数组、集合和泛型(后面会讲)的区别:

1)集合可存放任意类型的元素,可以自动增长,并且集合里所有的元素都是object。如果元素是值类型会自动装箱,取出时要做类型转换。

2)泛型可以定义元素类型,相对于集合,泛型集合可以避免装箱拆箱,提高性能,同时程序具有更好的可读性;相对于数组,泛型可以自动增长。

3)数组只能放定义类型的元素,不能自动增长,取出时不用做类型转换。可以认为,数组是一种泛型集合结构体。

6.System.Collections中常用的集合类有:

ArrayList(列表)、Hashtable(哈希表)、BitArray、Queue(队列)、Stack(栈)。

具体的属性和方法读者可参考书籍或官方文档。

项目拓展:

除了数组和集合,C#中还有两种简单的类型用于存储成组的相关数据--结构类型和枚举类型。

前面介绍过类,类是一种引用类型,在堆上创建;结构类型可以包含字段、方法和构造函数,这

些和类相同,但它是值类型,存储在堆栈中,能有效地减少内存管理开销。

结构体主要用于创建小型对象,能有效的减少内存管理开销。

C#枚举类型是由同一类型的数据组成的一组新的C#数据类型,而C#结构类型是由不同类型的数据组成的一组新的数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值