集合与列表(2)

本文深入探讨了C#中的集合接口(如ICollection、IList、Lists、IDictionary、字典和散列表)及其在实际编程中的高级应用,详细介绍了它们之间的区别、特性及使用场景。同时,文章还分析了队列(Queue)和堆栈(Stack)的数据结构特性,以及它们在消息处理和顺序处理中的应用。通过实例解析,帮助开发者更熟练地掌握这些数据结构的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

ICollection接口:扩展了接口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属性索引器也按照关键字来索引。

 

散列表(Hashtable)要点:Hashtable实现了IDictionary接口,因此在Hashtable中存储的是DictionaryEntry,而使用foreach 语句时,需要集合中每个元素的类型。由于 Hashtable 的每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型。而是 DictionaryEntry 类型。

 

Queue和Stack:Queue表示对象的先进先出集合。队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue 中的对象在一端插入,从另一端移除。

 

Stack与Queue正好相反。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值