在.net中,链表是其他列表的基础类

本文关键字:其他 列表 基础类 链表 net | 更新日期: 2023-09-27 18:22:22

在.net的一次采访中,有人问我linkedlist在.net中的重要性。我回答说,linkedlist用于必须进行大量插入的地方,但我从未在我编写的任何代码中使用过linkedlist。然后面试官告诉我,.net中的所有列表都使用linkedlist作为其基本类型。当我回到家时,我在网上找不到任何支持他的说法的东西。有人能对他的陈述的有效性发表评论吗?

在.net中,链表是其他列表的基础类

我认为你的面试官完全错了。根据定义,LinkedList是一个相互连接的实体列表,因此为了获得某个项目X,您需要遍历所有列表,直到该项目您无法通过索引访问该项目(只是一个示例)。LinkedList只是一个不同的数据结构,可以肯定的是,它并没有用于所有的BCL列表类型。

这是一个非常方便的选择,当你要有链接的元素和消耗小内存时(除了指向邻居的指针之外,不需要额外的数据),但你要付出遍历/拾取/删除/更新速度的代价。

听起来像BS。如果你使用反射或检查.net/mono源代码,你可以看到他们使用数组作为基本类型:

private T[] _items;
MSDN说c# List<T>就像ArrayList

List类是ArrayList类的通用等价物。它使用大小为的数组实现IList通用接口根据需要动态增加。

这意味着普通的List<T>而不是链表。