Я борюсь с проблемой большого массива. Мне нужно прочитать много файлов 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», это не проблема размера, с которой вы обращаетесь к несуществующему элементу, поэтому вы должны использовать динамическую структуру данных, возможно, List –
Перестройте свой проект как x64, затем повторите попытку. Если это не работает, получите больше памяти. – dasblinkenlight