.net - List<T> 如何在内部映射?

标签 .net arrays list generics clr

它是在内部被视为数组还是被 CLR 视为完全不同的类型?

我正在尝试将整数值实现到列表中。

List<int> lst = new List<int>();
lst.Add(3);
lst.Add(4);

对比

我创建了一个整数数组
int[] arr = new int[2];
arr[0] = 3;
arr[1] = 4;

数组返回更好的时间跨度结果。那么为什么人们更喜欢 List<>。

最佳答案

List<>是一种数据结构的实现,它负责按需分配内存;它允许在任何索引处插入和删除等。因此它比简单的数组方便得多。

在引擎盖下,当前 List<>实现使用数组进行存储,并且进行类似数组的操作时的开销是最小的。增加的便利通常值得一点(如果有的话)性能差异。添加项目通常更快,因为列表分配内存块并且不需要在每次添加时进行新的分配和复制(与纯数组相比,其中Length总是绑定(bind)到内存中的大小)。

关于.net - List<T> 如何在内部映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807571/

相关文章:

.net - "bad"在字典中使用对象作为键吗?

.net - System.Guid.NewGuid() 是否总是通过 Windows 上的 UuidCreate() 实现?

C# 在不加载未经验证的 XSD 的情况下使用 XSD 验证 XML?

javascript - React 不会在 map 函数中渲染

python - 结合 sparse 和 einsum 进行大的稀疏求和

python - 计算包含 None 类型的列表的均值和最小值

java - hibernate 多对多关系集或列表?

.net - 如何从 WHOIS 结果中解析电子邮件地址

python - 如何将颜色图绑定(bind)到数组?

python - 在 Python for 循环中比较列表中的元素