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