如何减小ArrayList的大小?

时间:2011-01-27 20:16:54

标签: vb.net resize arraylist

让我说我的ArrayList有20个元素。好吧,有时在运行时我会希望它只有10个元素,所以其他10个索引(从9到19)根本不存在。我该怎么做?

4 个答案:

答案 0 :(得分:3)

为什么要使用非通用集合?请改用List<T>。您可以使用Remove()方法。

答案 1 :(得分:2)

由于您使用的是ArrayLists,而不是Arrays,只需对单个部分使用ArrayList.Remove(),对范围使用ArrayList.RemoveRange(x,list.Count-x)。

答案 2 :(得分:1)

如果您希望避免为不存在的元素使用内存空间,可以尝试使用TrimToSize方法:

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.trimtosize.aspx

通过限制当前项的容量,它将最小化阵列开销。

如果它们已经存在,您需要删除它们,然后调用此方法。

我不确定你到底在寻找什么,所以更多细节会很棒。

答案 3 :(得分:0)

如果您只想删除元素而不更改容量,可以使用ArrayList.RemoveRange:

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.removerange.aspx

arrayList.RemoveRange(10,list.Count-10)

此方法可用于任何其他有效范围,例如:想要删除前十个元素。