System.Int32.MaxValue
假设你的意思是System.Array,ie。任何正常定义的数组(int [],等等)。这是数组可以保存的值的最大数量。每个值的大小仅受可用于保存它们的内存或虚拟内存的数量的限制。
此限制是强制的,因为System.Array使用Int32作为索引器,因此只能使用Int32的有效值。除此之外,可以仅使用正值(即,> = 0)。这意味着数组大小的绝对最大上限是Int32的值的绝对最大上限,其在Int32.MaxValue中可用,并且等于2 ^ 31,或大约20亿。
在完全不同的情况下,如果你担心这一点,它可能是你使用了大量的数据,不管是正确还是不正确。在这种情况下,我将使用List< T>而不是一个数组,这样你只需要使用尽可能多的内存。事实上,我建议使用List< T>或另一种通用集合类型。这意味着只有您实际使用的内存将被分配,但是您可以像使用普通数组一样使用它。
注意的另一个集合是Dictionary< int,T>你可以像普通数组一样使用,但只会稀疏填充。例如,在下面的代码中,只创建一个元素,而不是数组创建的1000元素:
Dictionary foo = new Dictionary();
foo[1000] = "Hello world!";
Console.WriteLine(foo[1000]);
使用字典还允许您控制索引器的类型,并允许您使用负值。对于绝对最大大小的稀疏数组,您可以使用Dictionary< ulong,T>,它将提供比您可能想到的更多的潜在元素。