- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
泛型和集合[东软]
C#编程基础
--泛型和集合
东软IT人才实训中心 刘克刚
Copyright 2009 By Neusoft Group. All rights reserved.
集合
• 有时需要在数据集合中存储多个数据项,也就是说需要在较大
的结构中存储以某种方式相关的数据组或数据集合。C#
和.NETFramework为在代码中对这类数据值进行排序提供了
许多方式。
• 最简单的数据结构是数组。数组是System.Array类的一个实
例,使用它可以高效地访问给定下标的元素,编程也非常直
观。但是数组有一个缺点,即在实例化时需要指定数组的大
小,以后也不能添加、插入和删除元素。数组还必须有一个数
字下标,这样才能访问其中的元素。在处理一组Employee记
录时,如果需要按照Employee的姓名查找记录,这个下标不
能做到。
2010年1月29 日星期五
集合
• .NET支持许多在不同环境下使用的数据结构,不仅如
此,.NET还有许多接口,类实现这些接口后,它们就支持某种
数据结构的全部功能。例如:
– 集合
– 数组列表
– 栈
– 队列
– 有序列表
– 字典(映射)
• 除了基类System.Array以外,其他的数据结构类都在
System.Collections命名空间中。
2010年1月29 日星期五
集合
• 集合表示一组可以通过遍历每个元素来访问的一组对象,特别
是可以使用foreach循环来访问它们。使用foreach循环是集
合的主要目的,集合没有提供其他特性。
• 集合必须实现接口System.Collections.IEnumerable。
IEnumerable只定义了一个方法,如下所示:
interfface IEnumerable
{
IEnumerator GetEnumerator();
}
interface IEnumerator
{
object Current {get;}//获得当前对象的引用
bool MoveNext();//移向下一个对象
void Reset();//返回到集合开头前面的位置
}
2010年1月29 日星期五
集合
• GetEnumerator()的目的是返回枚举对象。该枚举对象实现
接口System.Collections.IEnumerator。
• 还有一个集合接口ICollection,它派生于IEnumerable。
它还有一个属性返回集合中的元素个数,它还可以把集合复制
到数组中,并提供信息,说明它是否是线程安全的。
2010年1月29 日星期五
集合
• 当不想提供下标时,集合是遍历元素的另一种形式。不能替换
或修改集合中的元素,因为Current属性是只读的。这种集合
主要是为foreach循环提供更方便的语法。
• 数组也是集合,因为foreach命令可以用于数组。
System.Array类提供的枚举可以按照下标从0开始的升序来
遍历其中的元素。
• 集合的一个重要方面是枚举作为一个单独的对象返回。它不应
是与集合相同的对象,原因是多个枚举可以同时应用到同一个
集合上。
• 演示一
2010年1月29 日星期五
数组列表
• 数组列表类似于数组,但它可以增大,由
System.Collections.ArrayList类来表示。它的工作方
式和StringBuilder有类似之处。
• ArrayList的实例化的最简单形式如下:
ArrayList arr = new ArrayList();
• 这行代码创建了容量为16的ArrayList对象。也可以在实例化
ArrayList时,指定最初的容量。例如:
ArrayList arr = new ArrayList(20);
• 也可以在实例化后,使用Capacity属性指定ArrayList的容
量,如下所示:
ArrayList arr = new ArrayList();
arr.Capacity = 20;
2010年1月29 日星期五
数组
文档评论(0)