用于定义新数组的最大长度

时间:2010-09-26 19:24:29

标签: c# arrays

  

可能重复:
  What is the Maximum Size that an Array can hold?

我想定义新数组,例如:

string[] str=new string[maxsize];

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

2 个答案:

答案 0 :(得分:3)

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

无论如何,最大值远远超出了日常使用所需的范围。更大的问题是为什么你想要分配一个包含那么多成员的数组。如果您需要一个特别庞大的阵列,那么您应该按需分配一个您需要的特定大小(或使用动态调整大小的容器)。

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

答案 1 :(得分:0)

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

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

    代表:List<string> str = new List<string>();

    http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

  2. 另外,如果你将一些maxsize设置为数组,那么你的程序可能会浪费宝贵的内存。