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



