【发布时间】:2013-08-05 16:59:28
【问题描述】:
简单的老式 C# 问题:ArrayList 是 Array 还是 List?两者之间的差异是巨大的,所以我很好奇是否有人知道ArrayLists 存储数据的方式?
【问题讨论】:
-
这是否意味着它就像一个扩展数组或其他东西? (删除时听起来非常慢)
-
您是在问
ArrayList是否在内部将其数据存储为linked list? -
IList只是一个允许动态调整大小的接口,但不需要任何特定的实现。所以ArrayList是由数组支持的IList实现。如果您想使用链表,请参阅LinkedList<T>。 -
如果
LinkedList是一个链表,那么List是什么? -
@sircodesalot 两个完全不同的概念。 .NET 术语中的列表是满足
IList/IList<T>接口的任何类,用于动态添加/删除项目并通过索引访问它们,而不管它是如何实现的。另一方面,链表是一种特定类型的数据结构,它(在我之前链接到的 Wikipedia 文章中进行了描述)。由于结构的设计方式,它不支持基于索引的访问,所以从技术上讲,LinkedList<T>不是IList<T>。
标签: c# data-structures