【发布时间】:2018-05-11 19:21:14
【问题描述】:
我有一个数组和一个简单的循环:
static BigInteger[] dataSet = new BigInteger[] { 100913, 1009139, 10091401, 100914061, 1009140611, 10091406133, 100914061337, 1009140613399 };
foreach (BigInteger num in dataSet ) {
BigInteger[] Vector = new BigInteger[num];
for (BigInteger i = 1; i <= num; i++) {
Vector[i - 1] = i;
}
}
谁能解释为什么这段代码返回
无法将类型“System.Numerics.BigInteger”隐式转换为“int”。 存在显式转换(您是否缺少演员表?)
此行出现错误:
BigInteger[] Vector = new BigInteger[num];
一切都转换为BigInteger,我看不出可能的原因。
感谢您的帮助,
提前致谢,
【问题讨论】:
-
错误在哪一行?
-
BigInteger[] Vector = new BigInteger[num];
-
num是BigInteger但您正在使用它来初始化数组的大小。 -
没错,因为我想创建与 num 大小相同的数组
-
是的,据我所知,BigInteger 使用(至少)16 个字节,这意味着您要在此处创建的最大数组大约是 16gb 内存!