1

我很好奇列表是如何动态的以及它是如何在幕后工作的,并且发现在快速的谷歌搜索中很难找到任何东西,所以我认为这是一个好问题。我在想列表类将数据存储在一个数组中,但它是否像在幕后重新创建数组一样简单,所以列表用户不必担心它?如果是这样,它多久执行一次,何时执行?

4

1 回答 1

3

AList<T>只是一个数组的包装器。它跟踪已添加的项目数量及其容量。如果您尝试添加超出其容量的新项目,它会分配一个新数组(大小是原始数组的两倍),将所有内容复制到其中,然后将新项目添加到数组中。

要获取有关特定 .Net 类如何工作的信息,获取 .Net 源代码并查看该类是如何实现的很容易。您可以按照 Eric 的说明直接从 Microsoft 下载它,或者使用我发现更容易/更快的反编译器快速浏览(我个人使用dotPeek)。另请注意,MS 仅通过 .Net 2.0 发布,因此查看 .Net 3.5+ 代码将需要反编译器。

于 2013-07-06T16:07:42.693 回答