我正在與一個大陣列的問題鬥爭。我需要閱讀大量的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