大家好,如果我的问题对某些专家来说可能显得愚蠢,请道歉。我试图找出以下事实背后的原因:尽管对于任何实际任务,我们总是会在 C# 中使用 List,但向量仍然存在。我的意思是像 ToArray() 和 ToList 这样的方法可以在两者之间来回切换,但最终我们将列表用于任何实际任务。
换句话说,当我们发现自己总是在使用 List 时,为什么我们还要继续在 C# 中教授和谈论向量?
正如本文开头所述,如果这个问题来自狭隘或新手的视野,请道歉,希望有人能让我更清楚地了解这个领域。
列表(以及许多其他东西)使用数组。这就像问“既然我们有房子,为什么还要砖头?”。如果它们不适合您的场景:好吧,不要使用它们!就像我们可以使用砖块建造很多东西,而不仅仅是房屋一样:数组(作为托管堆内存的连续大小在创建时固定块的关键隐喻)被使用几乎无处不在在运行时和库中。
如果您的需求与更高级别的抽象(如列表、队列等)更加一致:那就太好了!这样做!
还应该注意的是,列表必然涉及一个数组(至少一个,如果逐渐增长,则可能有多个)和包装器列表对象,增加了您可能需要在低级中避免的额外分配和开销库代码,虽然公平地说,通过最初创建具有正确大小的列表,并通过 MemoryMarshal
绕过访问器,可以避免其中的
大多数...但在这一点上,你很漂亮很多人把它当作礼物包装的阵列无论如何,所以...