当我们实际上总是使用List时,为什么数组仍然存在<T>?

问题描述 投票:0回答:1

大家好,如果我的问题对某些专家来说可能显得愚蠢,请道歉。我试图找出以下事实背后的原因:尽管对于任何实际任务,我们总是会在 C# 中使用 List,但向量仍然存在。我的意思是像 ToArray() 和 ToList 这样的方法可以在两者之间来回切换,但最终我们将列表用于任何实际任务。

换句话说,当我们发现自己总是在使用 List 时,为什么我们还要继续在 C# 中教授和谈论向量?

正如本文开头所述,如果这个问题来自狭隘或新手的视野,请道歉,希望有人能让我更清楚地了解这个领域。

c# arrays list
1个回答
6
投票

列表(以及许多其他东西)使用数组。这就像问“既然我们有房子,为什么还要砖头?”。如果它们不适合您的场景:好吧,不要使用它们!就像我们可以使用砖块建造很多东西,而不仅仅是房屋一样:数组(作为托管堆内存的连续大小在创建时固定块的关键隐喻)被使用几乎无处不在在运行时和库中。

如果您的需求与更高级别的抽象(如列表、队列等)更加一致:那就太好了!这样做!

还应该注意的是,列表必然涉及一个数组(至少一个,如果逐渐增长,则可能有多个)包装器列表对象,增加了您可能需要在低级中避免的额外分配和开销库代码,虽然公平地说,通过最初创建具有正确大小的列表,并通过 MemoryMarshal 绕过访问器,可以避免其中的

大多数
...但在这一点上,你很漂亮很多人把它当作礼物包装的阵列无论如何,所以...

© www.soinside.com 2019 - 2024. All rights reserved.