我认为,之所以List
有一个Capacity
财产,Stack
而Queue
不会是那些类型的正常使用是不同的.
对于List
它来说,用一大组值填充它是相当常见的,甚至在创建它之后的一段时间.提供Capacity
属性(和构造函数参数)有助于减少在向列表中添加大量项目时要执行的重新分配的数量.
Stack
而Queue
另一方面,在创建之后不会立即将大量项目添加到它们中.
据推测,微软决定不值得添加该Capacity
属性,因为它不会被大量使用.
但是,请注意Queue确实有一个允许您指定初始容量的构造函数,Stack也是如此.
另请注意,这两个类也有一个TrimExcess()
方法,如下面的@drch所述.
所以微软认为它在构建时会很有用,但以后没用 - 所以他们只向构造函数添加了容量功能.
(顺便说一句,我刚刚通过我们的代码库进行快速检查,它似乎是唯一一次我们使用能力List
,其实是在施工时间.所以,也许如果微软现在正在设计名单,他们也可能会忽略的Capacity
财产列表...)
归档时间: |
|
查看次数: |
3100 次 |
最近记录: |