Dot-Net

Array 與 List<T>:何時使用哪個?

  • January 12, 2009
MyClass[] array;
List&lt;MyClass&gt; list;

一種比另一種更可取的情況是什麼?為什麼?

實際上,您很少會想要使用數組。絕對在List&lt;T&gt;您想添加/刪除數據的任何時候使用,因為調整數組大小很昂貴。如果您知道數據是固定長度的,並且您想出於某些非常具體的原因(在基準測試之後)進行微優化,那麼數組可能會很有用。

List&lt;T&gt;提供數組更多的功能(儘管 LINQ 稍微平衡了一點),而且幾乎總是正確的選擇。params當然,爭論除外。;-p

作為計數器 -List&lt;T&gt;是一維的;where-因為您有矩形(等)數組,例如int[,]or string[,,]- 但是還有其他方法可以在對像模型中對此類數據進行建模(如果需要)。

也可以看看:

也就是說,我在我的protobuf-net項目中大量使用了數組;完全出於性能:

  • 它做了很多位移,所以 abyte[]對於編碼非常重要;
  • 我使用本地滾動byte[]緩衝區,然後再發送到底層流(和 vv);比BufferedStream等快;
  • 它在內部使用基於數組的對像模型(Foo[]而不是List&lt;Foo&gt;),因為一旦建構,大小就固定了,並且需要非常快。

但這絕對是個例外;對於一般業務線處理,List&lt;T&gt;每次都贏。

引用自:https://stackoverflow.com/questions/434761