来自C++,发现C#ArrayList
没有Resize(count)
方法很奇怪?
为什么?我错过了什么吗?
问问题
6171 次
2 回答
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 上,否则最好使用泛型集合。)
如果您想执行一些其他操作,请指定它。我个人很高兴这三个操作是分开的。在我自己的经验中,我想不出任何我想添加或删除元素但不知道我实际在做什么的情况。
于 2012-11-03T10:38:09.290 回答
2
您应该为此使用 Generic List<> ( System.Collections.Generic.List )。它以恒定的摊销时间运行。或者您可以将ArrayList.Capacity
用于您的目的。
于 2012-11-03T10:38:18.883 回答