我想创建一个大小为 10^9 的数组,其中每个元素都可以是相同大小的整数。我总是在初始化行收到 OutOfMemoryException
。我怎样才能做到这一点?
如果这不可能,请提出替代策略?
最佳答案
在 .net 4.0 或更早版本中,数组限制为 2GB,即使在 64 位进程中也是如此。因此,对于十亿个元素,支持的最大元素大小为两个字节,而 int
为四个字节。所以这是行不通的。
如果你想有一个更大的集合,你需要自己写,由多个数组支持。
在 .net 4.5 中,可以避免此限制,有关详细信息,请参阅 Jon Skeet 的回答。
关于c# - 数组内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14560975/