我正在与一个大阵列的问题斗争。我需要阅读大量的csv文件并使用它们(制作表格并保存它们)。我尝试这样在C中创建大型(巨大)数组#
String[,,] pole = new string[5000, 10251, 100];
...
String[] proz = File.ReadAllText("@/../../History/201" + r + "-" + m1 + m2 + "-" + d1 + d2 + "_00/variables_ens.csv").Split(';');
for (int k = 0; k < 10251; k++)
{
int l = k/99;
int lk = l * 99;
int b = k - lk;
pole[n, l, b] = proz[k];
}
但第一行
String[,,] pole = new string[5000, 10251, 100];
在它说出来范围的异常,但我确实需要那么多的空间。当我写
String[,,] pole = new string[100, 10251, 100];
它的工作原理,但只适用于这些文件的数百个。 有什么建议吗?
你可以使用List <>来代替数组,它更加灵活。您应该需要它不是每个CSV都具有相同数量的内容。所以这个列表可以增长并且没有硬编码的索引范围。 –
好,如果你说的是“IndexOutOfRangeException”的情况,这不是你访问一个不存在的元素的大小问题,因此你应该使用动态数据结构,也许列表 –
重建你的项目为x64,然后再试一次。如果这不起作用,请获取更多内存。 – dasblinkenlight