때문에 당신이 설명하고있는 상황에서이 작업을 수행하는 쉬운 방법이 목록에 double[]
배열을 중지 아무것도하는 것, 다른 크기 인에서 없다, 없다 2 차원 직사각형 배열과 호환되지 않는다. 그러나 모든 double[]
배열을 보장 할 수있는 위치에 같은 차원이있는 경우 다음과 같이, 당신은 당신의 2 차원 배열을 구성 할 수 있습니다 다음 double[]
의 경우
var arr = new double[ret.Count(),ret[0].Count()];
for(int i=0; i<ret.Count(); i++) {
for(int j=0; j<ret[i].Count(); j++)
arr[i,j] = ret[i][j];
}
이 런타임 오류가 발생합니다 목록의 배열은 첫 번째 배열보다 짧으며 배열 중 하나가 첫 번째 배열보다 큰 경우 데이터가 손실됩니다.
직사각형 배열에 들쭉날쭉 한 배열을 저장하려고 결정한 경우 "마법"값을 사용하여 해당 위치에 값이 없음을 나타낼 수 있습니다. 예를 들어 :
var arr = new double[ret.Count(),ret.Max(x=>x.Count())];
for(int i=0; i<ret.Count(); i++) {
for(int j=0; j<arr.GetLength(1); j++)
arr[i,j] = j<ret[i].Count() ? ret[i][j] : Double.NaN;
}
사설 노트에, 나는 이것이 아주 나쁜 아이디어 ™ 생각; 직사각형 배열을 사용하려면 항상 Double.NaN
을 확인해야합니다. 또한 Double.NaN
을 배열의 합법적 인 값으로 사용하려면 어떻게해야합니까? 들쭉날쭉 한 배열이있는 경우에는 지그재그 배열로 두어야합니다.
은 2D 배열이 아닌 들쭉날쭉 한 배열을 원하는 것처럼 들리지만 모든 배열의 길이가 동일하기 때문에 이것이 필요한가요? – BrokenGlass
다차원 배열이 필요한 코드를 변경하는 것이 더 편할 것입니다. – Jodrell
아마 당신이 원하는 것을 정확하게 설명하고 원하는 이유를 설명하는 코드를 게시해야합니다. – Bernard