C# 中,列表比数组更好吗?
C# 中,列表比数组更好吗?
这个问题已经在这里有了答案:
可能是重复问题:
即:
// ex1 IList list // ex2 string[] str
列表可以不带长度进行初始化,但当我需要读取它时,它是否与数组一样好?
而且,我能否将所有的 string[]
替换为 IList
?
数组做不到的事情有什么是列表可以做到的吗?
admin 更改状态以发布 2023年5月20日
在大多数情况下,List<>
更好。它更清晰,更易于使用和循环,具有许多有用的属性和方法,而且不像数组那样需要一个连续的内存块。它可以在需要时增长/缩小,你的代码将变得更易读。
在性能方面,在许多情况下,List<>
的性能可能会优于数组,尤其是如果你需要增长/缩小,但只有测量才能真正显示。而且实际上,这种类型的性能优化在今天已经不怎么需要了。
当你必须传递大块内存(例如字节数组)或需要进行互操作性(即,没有 Win32 API 可以理解 List)时,请使用数组。对于这些情况,请使用 List.ToArray() 来兼顾两者的优点。
在你必须在数组或列表中查找东西的情况下,使用 Dictionary
可能是更合适的选择,在几种情况下,它的速度非常快。