큰 배열의 문제로 싸우고 있습니다. 나는 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