的确,对于值类型,泛型集合比非泛型集合表现得更好。 (即 List 与 ArrayList)。
但为什么会这样,除了装箱-拆箱步骤?一旦添加到集合中,值类型对象存储在哪里?在非泛型集合中,它们会被装箱并存储在堆上,泛型有什么不同?
最佳答案
在泛型中,例如 List<T>
,它们仍然存储在堆中。不同之处在于,在内部,一个 List<int>
制作一个整数数组,并可以直接存储数字。使用 ArrayList,您最终会存储一个对装箱整数值的引用数组。
关于c# - 值类型存储在 (C#) 泛型集合中的什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790436/