gpt4 book ai didi

c# - : List. Add() 或 System.Array.Resize() 哪个更有效?

转载 作者:可可西里 更新时间:2023-11-01 08:56:56 25 4
gpt4 key购买 nike

我正在尝试确定何时使用 List<T>.Add() 更有效与使用 Array.Resize() 相比方法。

Array.Resize 的文档说它复制了整个数组,并将其放入一个新对象中。旧对象将不得不被丢弃。这个旧对象在哪里?在栈上还是堆上?

我不知道 List.Add() 是如何工作的。

有谁知道 List.Add 方法与静态 Array.Resize 方法相比如何?

我对内存使用(和清理)以及 300 种值类型和 20,000 种值类型哪个更好。

就其值(value)而言,我计划在 .NET 的一种嵌入式版本上运行此代码。可能是 .NET Gadgeteer

最佳答案

你应该使用 List<T> .

使用 Array.Resize将强制您在每次添加项目时分别扩展数组,从而使您的代码大大变慢。 (因为数组不能有多余的容量)

A List<T>由一个数组支持,但保留了将项目放入其中的备用容量。
添加项目所需要做的就是在数组中设置一个元素并增加其内部 size计数器。
当数组变满时,列表的容量将增加一倍,从而可以轻松地再次添加 future 的项目。

关于c# - : List<T>. Add() 或 System.Array.Resize() 哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com