2010-04-22 36 views
2

虽然将数据添加到集合中,这是更好的实践使用,什么是性能影响,如果我们使用Dictionary vs ArrayList和为什么?字典vs ArrayList

+0

http://stackoverflow.com/questions/128636/net-data-structures-arraylist-list-hashtable-dictionary-sortedlist-sortedd的可能重复 – 2010-04-22 05:13:29

+2

这完全取决于什么你在*之后将数据添加到集合中,当然?如果一旦它在那里,你从来没有做过任何事情,那么为收藏添加东西有什么意义? – 2010-04-22 05:14:55

回答

3

实际上根本不应该使用ArrayList,因为您使用的是强类型List<T>

您使用哪个取决于您需要如何访问数据。列表存储项目的顺序列表,而词典存储由项目标识的项目。 (您仍然可以从字典中顺序读取项目,但顺序不会被保留。)

性能几乎相同,都使用内部数组来存储实际数据。当他们达到他们的容量时,他们分配一个新的更大的阵列并将数据复制到它。如果您知道集合有多大,则应在创建集合时指定容量,以免它自己调整大小。

1

它们不是可互换的类。苹果和桔子。如果您打算使用密钥在集合中查找项目,请使用Dictionary。否则,使用ArrayList(或最好List<T>