认识 C# 的 ArrayList

作者:vkvi 来源:千一网络(原创) 日期:2007-7-4

C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。


您还会喜欢:C# []、Array、List、ArrayList 区别简介

ArrayList 的名称空间是 System.Collections。

ArrayList 元素类型

和数组不同,ArrayList 的各个元素的类型可以不同。

声明对象

//声明 ArrayList 有三种重载方法,较常用的有两种
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(3);

上例中,参数值 3 表示容量,即可以容纳多少个元素。

Capacity 与 Count

ArrayList 具有 Capacity 和 Count 属性,分别表示容量和数量。

  • Capacity 表示 ArrayList 可包含的元素数;Count 表示实际包含的元素数。
  • Capacity 可读可写;Count 只读。

当 Capacity 不够时

我们的 Capacity 如果小了,无法容纳我们实际的元素个数,这时再增加元素时:

如果指定了 Capacity,Capacity 将按指定的 Capacity 的倍数增长(如果 Capacity 小于 2,将按 2 的倍数增长),比如指定了 Capacity 为 3,那么将按 3、6、9、12、15、18 ……线性的方式增长,直到可以容纳实际的元素个数。

如果没有指定 Capacity 值,Capacity 将按 2、4、8、16、32、64 ……指数的方式增长,直到可以容纳实际的元素个数。

Capacity 不会自动缩小

当 Capacity 被自动增大后,即使删除了某些元素,Capacity 也不会自动缩小,需要设置 Capacity 来缩小,注意 Capacity 不能小于当前 Count。

相关阅读

你前面那位网友看了:C# XmlNode 的 Clone 与 CloneNode 的区别

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他