我正在尝试确定何时更有效List<T>.Add()
与使用Array.Resize()
method.
Array.Resize 的文档说它会复制整个数组,并将其放入一个新对象中。旧的对象将不得不被丢弃。这个旧对象位于哪里?在栈上还是在堆上?
我不知道 List.Add() 是如何工作的。
有谁知道 List.Add 方法与静态 Array.Resize 方法相比如何?
我对内存使用(和清理)感兴趣,以及 300 个值类型与 20,000 个值类型相比哪个更好。
无论如何,我计划在 .NET 的嵌入式版本之一上运行此代码。潜在的.NET 小工具专家 http://research.microsoft.com/en-us/projects/gadgeteer/default.aspx
你应该使用List<T>
.
Using Array.Resize
每次添加项目时都会强制您单独扩展数组,从而使您的代码much慢点。 (因为阵列不能有闲置容量)
A List<T>
由数组支持,但具有用于放入项目的备用容量。
添加项目所需要做的就是在数组中设置一个元素并增加其内部size
柜台。
当数组满时,列表的容量将增加一倍,从而可以轻松地再次添加未来的项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)