首页 > 解决方案 > 为什么 C# 数组仍然限制在约 21 亿个元素中

问题描述

在 .Net 4.5gcAllowVeryLargeObjects中引入了允许 64 位系统大小大于 2gb 的数组。然而,数组曾经(并且仍然)被限制在大约 42 亿个元素和大约 21 亿个维度中。为什么?

对它没有兴趣,还是存在阻止他们在 .Net 核心类(数组、列表等)中使用字长索引器的实际问题?

C# 已经允许自定义类中的长类型索引器,并且将索引器从 int 更改为 long 以用于 64 位构建将是非破坏性的(我相信),因为 int 始终可以转换为 long。

标签: c#arrayslimitdimensionsgcallowverylargeobjects

解决方案


因为数组索引是整数,而C#中的int类型有最大值。


推荐阅读