什么是 C# 中的列表,它是如何工作的?

Dim*_*ion 2 c#

如果我在网上搜索“c++ list”,我会很好地总结了 c++ 中的列表是如何工作的,以及它的优点/缺点等等。但是我找不到相同的 C#。据我所知,名单并没有说明它是如何实现的,而且它可能会因语言中的实际列表而有很大差异。

我需要将包含大量数据的大量文件加载到一个数组中,以便快速随机访问所有数据。但是它的数据太多,c# 找不到足够大的连续内存块。所以我打算创建一个抽象,它接受许多数组并充当一个数组。它将有一个索引器属性,可以查看访问正确的数组。

但是后来我想,这不是列表在 c# 中的实际工作方式吗?我所知道的关于 c# 中的列表,或者至少认为,它们不像链表那样工作,在链表中无法访问随机元素,只能从前一个元素或可能从它之后的元素访问。

我能得到一些关于这个问题的细节吗?

Mic*_*ckJ 7

回答您的初始查询 - 'List' 由 C# 中的数组支持

来自 MSDN:

http://msdn.microsoft.com/en-us/library/ms379570(v=vs.80).aspx#datastructures20_1_topic5

List 是“一个同构的、自重构数组

这篇文章非常好,也许你正在寻找什么。

Imp: c# 中的 List 由数组支持,因此理论上的大小限制将是支持它的数组的限制。同样,在使用列表时,如果您确定将其增长到特定大小,那么将初始容量设置为足够大以优化性能将是一个好主意。

但我有一种感觉,“列表”不是您在这里寻找的解决方案。

建议:也许如果您对文件大小有限制,您也许可以使用将文件键入其内容的字典,并使用规范文件路径作为将内容存储在列表中的键。这也许对你有用。