- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C#入门经典》学习笔记(集合、比较及转换)
PAGE17 / NUMPAGES17
《C#入门经典》学习笔记(集合、比较和转换)
集合
?C#中的数组是作为System.Array类的实例来执行的,它们是集合类中的一种集合类一般用于处理对象列表,其功能是通过执行System.Collection中的接口实现的
集合的功能可以通过接口来实现该接口可以使用基本基本集合类,也可以创建自定义的集合类
System.Collections 命名空间有很多接口提供了基本的集合功能:IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代ICollection:定义所有非泛型集合的大小、枚举数和同步方法IList:表示可按照索引单独访问的对象的非泛型集合IDictionary:表示键/值对的非通用集合
System.Array类继承了IList,ICollection和IEnumerable但不支持IList的一些高级功能,而且是一个大小固定的项目列表
使用集合
Systems.Collections中的一个类System.Collections.ArrayList,也执行IList,ICollection和IEnumerable接口,但与数组不同,它是大小可变的
使用System.Array类的集合(数组),必须用固定的大小来初始化数组例如:Animal[] animalArray = new Animal[2];
使用System.ArrayList类的集合,不需要初始化其大小例如:ArrayList animalArrayList = new ArrayList();这个类还有两个构造函数:1 把现有集合作为参数复制到新实例中2 用一个int参数设置集合的容量,不过实际内容超过容量时会自动增加
初始化数组,需要给这个项目赋予初始化了的对象例如:Cow myCow1 = new Cow(Deirdre);animalArray[0] = myCow1;animalArray[1] = new Chicken(Ken);可以用这两种方式初始化数组
对于ArrayList集合,需要用Add()方法添加新项目例如:Cow myCow2 = new Cow(Hayley);animalArrayList.Add(myCow2);animalArrayList.Add(new Chicken(Roy));在添加万项目之后,就可以用与数组相同的语法重写他们例如:animalArrayList[1] = new Chicken(Roy2)
Array数组和ArrayList集合都支持foreach结构来迭代例如:foreach (Animal myAnimal in animalArray){}
foreach (Animal myAnimal in animalArrayList){}
Array数组使用Length属性获取项目的个数例如:int animalCount = animalArray.Length;
ArrayList集合使用Count属性获取项目的个数int animalCount2 = animalArrayList.Count;
Array数组是强类型化的,可以直接使用数组的类型来存储项目即可以直接访问项目的属性和方法例如:对于类型是Animal的数组,Feed()是类Animal的方法animalArray[0].Feed();但对于类Animal派生类的方法,就不能直接调用,需要强制转换((Chicken)animalArray[1]).LayEgg();
ArrayList集合是System.Object对象的集合,通过多态性赋給Animal对象必须进行数据类型转换例如:((Animal)animalArrayList[0]).Feed();((Chicken)animalArrayList[1]).LayEgg();
使用Remove()和RemoveAt()方法删除项目Remove??从 ArrayList 中移除特定对象的第一个匹配项(参数为特定对象)RemoveAt?移除 ArrayList 的指定索引处的元素(参数为索引值)删除项目后,会使其他项目在数组中移动一个位置
使用AddRange()和InsertRange()方法可以一次添加多个项目AddRange?将 ICollection 的元素添加到 ArrayList 的末尾InsertRange?将集合中的某个元素插入 ArrayList 的指定索引处。例如:animalArrayList.AddRange(animalArray);
使用IndexO
文档评论(0)