认识 C# 的 ArrayList

  • 认识 C# 的 ArrayList
  • 使用 C# 的 ArrayList
  • C# 中 List 用法

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。

相关阅读

  • 请参见 MSDN 的 ArrayList 类(System.Collections)
  • C# 一维数组
  • C# 多维数组
  • C# 交错数组

你可能感兴趣的