来自C ++,发现C#ArrayList
没有Resize(count)
方法是非常奇怪的?
为什么呢?我错过了什么吗?
答案 0 :(得分:14)
您可能希望执行三项单独的操作:
更改ArrayList
的容量。这可以通过ArrayList.Capacity
和List<T>.Capacity
通过修剪某些元素来更改列表的实际计数。这可以通过ArrayList.RemoveRange
和List<T>.RemoveRange
实现。
通过添加一些元素来更改列表的实际计数。这可以通过ArrayList.AddRange
和List<T>.AddRange
来实现。 (从.NET 3.5开始,您可以使用Enumerable.Repeat
轻松提出正确长度的序列。)
(我提到List<T>
除非你真的卡在.NET 1.1上,否则你最好使用泛型集合。)
如果您想执行其他操作,请指定它。我个人很高兴这三个行动是分开的。我无法想到在我自己的经历中我想要添加或删除元素的任何情况,而不知道我实际上在做什么。
答案 1 :(得分:2)
您应该使用通用列表&lt;&gt; (System.Collections.Generic.List)为此。它以不变的摊销时间运作。或者您可以将ArrayList.Capacity
用于您的目的。