List中可以存储的元素数量是否有限制?

7

在List中存储的元素数量是否有限制?还是只要你不断添加元素,直到内存耗尽为止?

1个回答

20

List<T> 目前的实现在构建其支持数组、计算 Count 属性、索引和所有内部操作时都使用了 Int32。因此,它当前的理论最大值为 Int32.MaxValue 个元素 (2^31-12147483647)。

但是,.NET Framework 还有一个最大对象大小限制为 2GB,因此您只能通过单字节项目的列表(例如 List<byte>List<bool>)接近项限制。

实际上,在达到这些限制之前,您可能会耗尽连续内存。


2
从理论上讲,这意味着您只能随机访问最多 Int32.MaxValue 个项目,而不是元素的数量,当然,这只是从理论上讲。 - R. Martinho Fernandes
1
@Martinho:嗯,当前的实现在所有地方都使用Int32,因此不仅是随机访问受到2^31项的限制。(当然,内部使用Int32只是一种实现细节,但索引器和Count等属性是公共契约的一部分。) - LukeH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接