列表中可以存储的元素是否有限制?
List 中可以存储的元素是否有限制?或者你可以继续添加元素直到内存不足?
Is there a limit of elements that could be stored in a List ? or you can just keeping adding elements untill you are out of memory ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
List
的当前实现使用Int32
everywhere - 为其Count
属性构造其后备数组,作为索引器及其所有内部操作 - 因此当前理论最大Int32.MaxValue
项(2^31-1
或2147483647
)。但 .NET 框架也有 2GB 的最大对象大小限制,因此您只能使用单字节项目列表(例如
List
或)接近项目限制。列表
。实际上,在达到这些限制之前,您可能会耗尽连续内存。
The current implementation of
List<T>
usesInt32
everywhere - to construct its backing array, for itsCount
property, as an indexer and for all its internal operations - so there's a current theoretical maximum ofInt32.MaxValue
items (2^31-1
or2147483647
).But the .NET framework also has a maximum object size limit of 2GB, so you'll only get anywhere near the items limit with lists of single-byte items such as
List<byte>
orList<bool>
.In practice you'll probably run out of contiguous memory before you hit either of those limits.