c# jarray 长度_c# – 数组可以容纳的最大大小是多少?

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>,它将提供比您可能想到的更多的潜在元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值