2009-01-30 124 views
0

正如問題所述,我始終認爲強類型列表是使用集合更好的方法。然而,今天在與同事討論之後,我希望得到比「因爲我喜歡它們」更好的答案。任何人都可以解釋a)每種方法的主要區別和優點/缺點。泛型列表(類型)和集合有哪些優缺點

編輯:What advantage do you get with a collection over List(Of T) in .NET 2.0+

+0

這是一個愚蠢的http://stackoverflow.com/questions/495591/what-advantage-do-you-get-with-a-collection-over-listof-t-in-2net-2-0/ 495626#495626 ??? – 2009-01-30 15:45:59

回答

4

強類型集合,包括列表相似,基於仿製藥讓你無需檢查的類型,您檢索形成列表中的對象的編程。它使代碼更清晰,因爲您不必投擲對象來使用它,而且由於包含錯誤類型的對象的集合,您不必擔心枚舉器拋出轉換異常。當然你也可以通過單元測試得到很多這樣的結果,但是使用泛型可以讓編譯器在編譯時進行檢查,而不必在運行時進行檢查。這樣更有效率。你仍然可以通過不恰當的投擲東西來解決編譯時錯誤,但是如果你沒有適當的檢查,你會得到你應得的。

2

我會在tvanfosson的回覆中補充說,當你存儲值類型時,泛型集合會更有效率。例如,List將佔用更少的內存,並且提供的訪問速度比將整數放入的ArrayList快得多。

如果您絕對必須將多個類型的對象存儲在集合中,則始終可以使用List並將其轉換爲你可以使用ArrayList。

除了向後兼容性,我不能想到任何理由使用舊式(即非泛型)集合來支持泛型集合。