11.07学习随记

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:07   1071   0

今天学习了一些数组相关的新东西

对象数组能够排序需要的接口:
lICollection接口 :
扩展了接口INumerable,扩展了属性Count,IsSynchronized和SyncRoot,另外还增加了方法CopyTo,在对象数组和对象的ICollection之间架起了桥梁。
Lists和IList:
IList扩展了ICollection,而ICollection扩展了IEnumerable。IList定义了许多直观的方法,如Add、Remove、Insert和Clear等;还有IsFixedSize、IsReadOnly和Item 属性,其中Item属性使得类可以很方便的使用索引器的方式访问其中的元素。
在Lists(IList)中有3种形式:只读IList、大小固定的IList和可变的IList。
字典和IDictionary
IDictionary扩展了ICollection,但不表示可以索引的一组对象,每个元素都是一个存储在DictionaryEntry(结构) 对象中的 关键字/值对集合。其Add方法也把关键字和值作为参数。Item属性索引器也按照关键字来索引。.NET中许多类都实现了IDictionary接口,如Hashtable、SortedList等。
Hashtable 今天我主要练习了一下散列表的使用。
散列表表示键或值对的集合,这些键或值根据键的Hash代码进行组织。
散列表的使用中要注意下面的要点:
Hashtable实现了IDictionary接口,因此在Hashtable中存储的是DictionaryEntry,而使用foreach 语句时,需要集合中每个元素的类型。由于 Hashtable 的每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型。而是 DictionaryEntry 类型。
在学习上面这些知识的同时也了解了一些其他的东西,比如:
SortedList,这个和Hashtable很类似,也是一个关键字/值对的集合,但它按照其关键字来排序,其值可以通过数字索引来处理,与数组一样。构造SortedList时,可以使用默认构造函数,也可以使用IDictionary作为其参数。
还有一对比较有意思的Queue和Stack,Queue表示对象的先进先出集合,队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue 中的对象在一端插入,从另一端移除。而Stack则恰恰与Queue是相反的表示对象的简单的后进先出非泛型集合。
坚持下去,每天都会有收获。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP