- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visua C# .NET程序设计教程 教学PPT 作者 罗福强 白忠建 杨剑 C# Ch5
电子科大成都学院精品课程《Visual C# .Net程序设计》 Visual C# .Net程序设计 电子科大成都学院计算机系 课件制作:罗福强 E-Mail:LFQ501@SOHU.COm 第五章 集合、索引器与泛型 5.1 集合 5.2 索引器 5.3 泛型 5.1集合 一、集合概述 二、选择集合类 三、集合的创建与操作 一、集合概述 集合是通过高度结构化的方式存储任意对象的类,与无法动态调整大小的数组相比,集合不仅能随意调整大小,而且对存储或检索存储在其中的对象提供了更高级的方法。 NET Framework 2.0引入了泛型集合(如对象列表List)和强类型非泛型集合(字符串集合StringCollection),在使用泛型集合或非强类型非泛型集合时,要保证元素的类型是集合所需的类型。 System.Collections命名空间的ICollection接口定义了所有非泛型集合的大小和操作方法,包括添加、移除与搜索集合元素等。 System.Collections命名空间还包含了ICollection接口最常用的已实现的集合类。 二、选择集合类 1..NET Framework的集合类 2.集合类的选择 1..NET Framework的集合类 (1) 常用集合(2) 位集合 包括BitArray和BitVector32 (3) 专用集合 包括StringCollection、StringDictionary和NameValueCollection等 2.集合类的选择 选择集合类时,一般要考虑以下问题: (1)是否需要一个序列列表,需要先进先出行为时可使用 Queue 队列类,在需要后进先出行为时可使用 Stack栈类。 (2)是否需要随机访问集合中的元素,此时不能选择Queue 队列类、Stack栈类、LinkedList 双向链表类 (3)是否需要通过索引访问每个元素,只有ArrayList、StringCollection等是从索引为零的元素开始逐个访问集合元素。Hashtable、Dictionary通过元素的键(即元素名字)提供对元素的访问。而NameValueCollection 类和SortedList 泛型类通过其元素的从零开始的索引,或者通过其元素的键提供对元素的访问。 (4)是否包含一个值、一个键和一个值的集合,还是一个键和多个值的集合。其中,“一个值”的集合是一种基于 IList 列表接口派生的集合,“一个键和一个值”的集合是一种基于IDictionary字典接口的集合,“一个键和多个值”的集合是 NameValueCollection 类。 集合类的选择(续) (5)是否需要用与输入元素方式不同的方式对元素排序。Hashtable 按其元素的哈希代码对元素排序,SortedList以及 SortedDictionary根据 IComparer 实现按键对元素的排序,而ArrayList提供 Sort 排序方法。 (6)是否需要信息的快速搜索和检索,对于小集合(10个元素或更少),ListDictionary 比 Hashtable 快,SortedDictionary 泛型类提供比 Dictionary 泛型类更快的查找。 (7)是否需要只接受字符串的集合,如StringCollection和 StringDictionary等。 三、集合的创建与操作 1. 动态数组类ArrayList 2. 队列Queue 3. 栈Stack 4. 哈希表Hashtable 5. 字符串字典StringDictionary 6. 键/值对集合NameValueCollection 1. 动态数组类ArrayList (1) ArrayList与Array的区别 Array 的大小是固定的,而 ArrayList的大小可根据需要自动扩充; 在Array中一次只能获取或设置一个元素的值,而在ArrayList中允许添加、插入或移除某一范围的元素; Array 的下限可以自定义,而ArrayList的下限始终为零; Array 可以具有多个维度,而 ArrayList始终只是一维的; Array 位于 System 命名空间中,ArrayList 位于 System.Collections 命名空间中。 (2) 创建动态数组: ArrayList 列表对象名 = new ArrayList(?); 例如, ArrayList list = new ArrayList(); list.Add(罗福强); list.Add(30); 2. 队列Queue 队列的特点 一种先进先出的数据结构,当插入或删除对象时,对象从队列的一端插入,从另外一端移除 创建队列对象 Queu
文档评论(0)