【发布时间】:2013-07-28 02:55:30
【问题描述】:
首先我很抱歉我的英语不好,然后是我的问题;
我知道有很多这样的问题,在这里,但我没有找到一个直接的答案。 List<T> 是否使用某种“链表”机制实现?还是只是一个过度设计的数组?
我对列表的性能问题感兴趣,例如排序、插入和删除项目。例如。对于插入操作,“链表”只是定义了一些新的连接,但数组需要改变它的值。清单呢?
【问题讨论】:
-
这是一个数组。在 F# 中,它们使用名称
ResizeArray<'T>来表示相同的List`1[T]类型。 -
有
List<T>的源代码;搜索“Microsoft shared source Initiative”,你会找到它。然后你可以自己回答这样的问题。 (回答您的问题:List<T>被实现为一个数组;当数组已满时,将分配一个大小为原来的两倍的新数组并从旧数组中填充。)
标签: c# list implementation