关于c#:最大长度大小,用于定义新数组

max length size for define a new array

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is the Maximum Size that an Array can hold?

我想定义新的数组,例如:

1
string[] str=new string[maxsize];

现在我可以为maxsize设置的最大数量是多少?


更新:根据以下评论,.NET将数组限制为2GB成员(或字节?)。我猜这是由于它使用带符号的32位整数作为索引,但这只是一个疯狂的猜测。

无论如何,最大值远不是您日常使用中所需要的。更大的问题是为什么您要分配一个具有这么多成员的数组。如果需要一个特别大的数组,则应按需分配一个所需的特定大小(或使用动态调整大小的容器)。

...但是,如果您有特殊需要,可以始终将多个数组链接在一起。每个数组的最后一个成员可以指向下一个数组(或者不指向任何内容以结束单个链接列表)。


我不确定我是否正确理解了您的要求,但这是我的评论。

  • 为什么需要为新数组设置maxsize?相反,您可以简单地使用列表,该列表将根据需要动态地增加。

    例如:List<string> str = new List<string>();

    http://msdn.microsoft.com/zh-cn/library/6sh2ey19.aspx

  • 此外,如果您将一些maxsize设置为array,那么您的程序可能会浪费宝贵的内存。