【发布时间】:2012-05-09 23:25:37
【问题描述】:
我目前使用List<T> 作为队列(使用lst[0] 然后lst.removeAt(0))来保存对象。在给定时间最多大约有 20 个项目。我意识到有一个实际的Queue<T> 类。我想知道使用Queue<T> 而不是像队列一样使用List<T> 是否有任何好处(性能、内存等)?
【问题讨论】:
-
Probably如果您使用的项目不超过 20 个,则不会。但是您可以使用 StopWatch 类来衡量这一点。 -
这是否重要取决于您的使用场景。 lst.RemoveAt(0) 将导致列表重新定位所有元素,而队列更智能。理论上队列更好,但要确保你应该衡量你的用例。
-
您不能按索引访问队列。你必须使用你出列的条目,你不能把它们放回去。 Peek 不是解决方案,但 Count > 0 可能是。
标签: .net performance list queue difference