哪个集合类有效插入C#

时间:2012-02-08 15:30:08

标签: c# .net visual-studio-2010 generics collections

如果我想在这些集合类“Dictionary”,“List”和“Sorted List”中插入数据,这将需要更少的时间来执行插入?你能给我一个代码来解释这个过程吗?

3 个答案:

答案 0 :(得分:13)

List<T>插入速度最快 LinkedList<T>将以最快的速度插入

对于大多数实际应用而言,差异微乎其微;你应该使用符合你需要的任何一个。

答案 1 :(得分:4)

向LinkedList插入一个值是O(1)操作。列表(由数组实现)可能需要额外分配和复制项目。

答案 2 :(得分:1)

如果您的性能要求非常严格,那么在决定之前,您应该在您的环境中衡量您的数据

我会提供一些猜测,在你进行自己的测量之前,你不应该认为这是理所当然的:

  • 如果您事先知道元素的数量,只需使用 预先分配List(或数组)。
  • 如果你不这样做:
    • 使用块列表(即LinkedList<List<T>>)以避免List调整大小。
    • 或者,为简单起见,您可以使用List并招致一些 调整大小以接受更多元素时的性能损失。我&#39;米 不确定这种惩罚是否合理使用DictionaryLinkedList 相反 - 但如果你衡量,你会成为;)

所有这一切都假设您不关心集合中的是否插入了新元素以及您以后如何检索它...如果您关心,然后您将根据 选择您的数据结构,而不仅仅是单独插入性能。