什么是C#中的列表?它是如何工作的? 如果我在网上搜索“C++列表”,我会很好地总结C++中的列表如何工作,以及它的优点/缺点,等等。但是我找不到同样的C。据我所知,名字列表并没有说明它是如何实现的,它可以在很大程度上不同于语言中的列表

什么是C#中的列表?它是如何工作的? 如果我在网上搜索“C++列表”,我会很好地总结C++中的列表如何工作,以及它的优点/缺点,等等。但是我找不到同样的C。据我所知,名字列表并没有说明它是如何实现的,它可以在很大程度上不同于语言中的列表,c#,C#,我需要加载大量的文件和大量的数据到最好是一个数组快速随机访问所有的数据。然而,它的数据太多,c#无法找到足够大的连续内存块。所以我要创建一个抽象,它包含许多数组,并作为一个数组。它将有一个索引器属性,可以查看访问正确数组的相关信息 然而,我想,这不是列表在c#中实际工作的方式吗?关于c#中的列表,我所知道的,或者至少我认为,它们不像链表那样工作,在链表中,除了从前一个元素或者从后一个元素访问外,无法访问随机元素 关于这件事,我能得到一些细节吗?我认为这是一个非常好的定义,简而言之,来自C#5.0

我需要加载大量的文件和大量的数据到最好是一个数组快速随机访问所有的数据。然而,它的数据太多,c#无法找到足够大的连续内存块。所以我要创建一个抽象,它包含许多数组,并作为一个数组。它将有一个索引器属性,可以查看访问正确数组的相关信息

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


关于这件事,我能得到一些细节吗?

我认为这是一个非常好的定义,简而言之,来自C#5.0

在内部,List和ArrayList通过维护内部 对象数组,达到容量时替换为更大的数组。 附加元素是有效的(因为通常在 结束),但插入元素可能会很慢(因为所有元素都在 插入点必须移动以形成一个自由插槽)。如同 如果在数组上使用BinarySearch方法,则搜索是有效的 已排序但由于每个 项目必须单独检查


要回答您的初始查询-“列表”由c#

从MSDN:

列表是“一个同质的自重定尺寸数组”

这篇文章很好,也许是你想要的

Imp:c#中的列表由数组支持,因此大小的理论限制将是支持它的数组的限制。此外,在使用列表时,如果您确定要将其扩大到一定的大小,那么最好将初始容量设置为足够大,以优化性能

但我觉得“列表”不是你在这里寻找的解决方案


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

在您阅读完此处后,您可能可以查看信息?要快速随机访问,您需要的是哈希表,而不是列表或数组,如
字典
请确保列表的定义是托管列表或非托管列表。它们是不同的问题,不应混为一谈。如果使用托管C++,C++列表与C语言列表相同,因为它们都被转换为IMSL,这是“相同”的下载反编译器,如TeleRik的JaveDeCopype或JeTnLyle的DoPek,并亲自查看实现。