Dot-Net
Array 與 List<T>:何時使用哪個?
MyClass[] array; List<MyClass> list;一種比另一種更可取的情況是什麼?為什麼?
實際上,您很少會想要使用數組。絕對在
List<T>您想添加/刪除數據的任何時候使用,因為調整數組大小很昂貴。如果您知道數據是固定長度的,並且您想出於某些非常具體的原因(在基準測試之後)進行微優化,那麼數組可能會很有用。
List<T>提供比數組更多的功能(儘管 LINQ 稍微平衡了一點),而且幾乎總是正確的選擇。params當然,爭論除外。;-p作為計數器 -
List<T>是一維的;where-因為您有矩形(等)數組,例如int[,]orstring[,,]- 但是還有其他方法可以在對像模型中對此類數據進行建模(如果需要)。也可以看看:
也就是說,我在我的protobuf-net項目中大量使用了數組;完全出於性能:
- 它做了很多位移,所以 a
byte[]對於編碼非常重要;- 我使用本地滾動
byte[]緩衝區,然後再發送到底層流(和 vv);比BufferedStream等快;- 它在內部使用基於數組的對像模型(
Foo[]而不是List<Foo>),因為一旦建構,大小就固定了,並且需要非常快。但這絕對是個例外;對於一般業務線處理,
List<T>每次都贏。