背景:我正在尝试创建自己的“向量”类来帮助对数组进行数学计算。我正在重载算术运算符 ( + - * / ) 以实现我想要的功能。起初,我在我的类中使用了一个私有数组,然后实现了IEnumerable<T>
接口。后来想到了继承List<T>
类,但是看了几篇文章,明白应该Collection<T>
改用。请注意,用数据填充我的“矢量”对象时,性能非常重要。
问题:该方法如何Collection<T>.Add()
工作?List<T>.Add()
文档很清楚:
如果 Count 已经等于 Capacity,则通过自动重新分配内部数组来增加 List 的容量,并且在添加新元素之前将现有元素复制到新数组中。
但是,Collection<T>.Add()
文档根本没有说明它是如何工作的。当我用作List<T>
我的基类时,我可以访问该属性,并且可以在使用该方法Capacity
之前指定大小。Add()
但是,Collection<T>
没有Capacity
属性——这就是我问这个问题的原因。我再次重申:性能非常重要。
由于性能是一个问题,也许我应该回到使用私有数组并实现IEnumerable<T>
接口。你怎么看?