C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。
您还会喜欢:C# []、Array、List、ArrayList 区别简介
ArrayList 的名称空间是 System.Collections。
ArrayList 元素类型
和数组不同,ArrayList 的各个元素的类型可以不同。
声明对象
上例中,参数值 3 表示容量,即可以容纳多少个元素。
Capacity 与 Count
ArrayList 具有 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。
相关阅读