在List中存储的元素数量是否有限制?还是只要你不断添加元素,直到内存耗尽为止?
在List中存储的元素数量是否有限制?还是只要你不断添加元素,直到内存耗尽为止?
List<T>
目前的实现在构建其支持数组、计算 Count
属性、索引和所有内部操作时都使用了 Int32
。因此,它当前的理论最大值为 Int32.MaxValue
个元素 (2^31-1
或 2147483647
)。
但是,.NET Framework 还有一个最大对象大小限制为 2GB,因此您只能通过单字节项目的列表(例如 List<byte>
或 List<bool>
)接近项限制。
实际上,在达到这些限制之前,您可能会耗尽连续内存。
Int32.MaxValue
个项目,而不是元素的数量,当然,这只是从理论上讲。 - R. Martinho FernandesInt32
,因此不仅是随机访问受到2^31项的限制。(当然,内部使用Int32
只是一种实现细节,但索引器和Count
等属性是公共契约的一部分。) - LukeH