使用数组还是List<>更好?
使用数组还是List<>更好?
这个问题已经有了答案:
我在想哪种类型的性能更好,你认为应该使用哪种。
例如,我有一个字符串列表,不知道需要多少项,所以拥有 .Add(String) 函数非常方便。我可以随时轻松地添加新字符串到列表中。
使用每个的优缺点是什么?
列表是否是新的数组?
admin 更改状态以发布 2023年5月20日
要正确回答这个问题,需要更多的上下文:
在公共API中,应该尽量使用抽象的集合类型,以便日后需要时可以更改内部实现。
- 如果集合不应该由外界更改,请使用
IEnumerable
。 - 如果集合将被外界更改,请使用
ICollection
。 - 如果需要索引访问,请使用
IList
。
在私有实现中,不如使用抽象类型重要:
- 如果需要访问索引并知道最终大小,请使用
T[]
或List
。 - 如果需要访问索引并不知道最终大小,请使用
List
。 - 如果打算以LIFO模式访问元素,请使用
Stack
。 - 如果打算以FIFO模式访问元素,请使用
Queue
。 - 如果需要在列表的开头和结尾访问元素,但不在中间访问,请使用
LinkedList
。 - 如果不想有重复,请使用
HashSet
。
.NET 4.0提供了一些更多的选择,但以上是基础知识。