我想知道哪种类型的性能更好以及您认为应该使用哪种类型。
例如,我有一个字符串列表,不知道我需要多少个项目,因此使用 .Add(String) 函数非常方便。我可以随时轻松地将新字符串添加到列表中。
使用每种方法的优点/缺点是什么?
列表是新数组吗?
确实需要更多上下文才能正确回答这个问题:
In a 公共API,您应该尝试使用抽象集合类型,以便稍后可以根据需要更改内部实现。
- 如果集合不应被外界更改,请使用
IEnumerable<T>
.
- 如果收藏will被外界改变,使用
ICollection<T>
.
- 如果需要索引访问,请使用
IList<T>
.
In a 私人实施,使用抽象类型并不那么重要:
- 如果您需要索引访问并知道最终大小,请使用
T[]
or List<T>
.
- 如果您需要索引访问并且不知道最终大小,请使用
List<T>
.
- 如果您计划以 LIFO 模式访问元素,请使用
Stack<T>
.
- 如果您计划访问 FIFO 模式中的元素,请使用
Queue<T>
.
- 如果需要访问列表开头和结尾的元素,而不是中间的元素,请使用
LinkedList<T>
.
- 如果您不想重复,请使用
HashSet<T>
.
在 .NET 4.0 中,您还有更多选择,但这些都是基础。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)