Итак, я искал ответ на этот вопрос уже около часа, и мне не удалось найти его, поэтому я собираюсь попытать счастья здесь.
Проблема: У меня есть 3-мерный массив, который содержит контейнеры. Этот массив предназначен для размещения контейнеров на грузовом судне. Массив состоит из длины, ширины и высоты. Я пытаюсь разбить массив на середину ширины.
Единственное решение, которое я смог отсортировать - это создать 2-мерные массивы, а затем использовать 6 для циклов для копирования большого массива. :
Container[,,] leftSideOfShip = new Container[ship.length, ((ship.width) / 2), ship.height];
Container[,,] rightSideOfShip = new Container[ship.length, ((ship.width) / 2), ship.height];
for(int a = 0; a < ship.length; a++)
{
for(int b = 0; b < ship.width/2; b++)
{
for(int c = 0; c < ship.height; c++)
{
if(ship.position[a,b,c] != null)
{
leftSideOfShip[a, b, c] = ship.position[a, b, c];
}
}
}
}
for (int d = 0; d < ship.length; d++)
{
for (int e = ship.width/2; e < ship.width; e++)
{
for (int f = 0; f < ship.height; f++)
{
if(ship.position[d,e,f] != null)
{
rightSideOfShip[d, e, f] = ship.position[d, e, f];
}
}
}
}
Циклы 3 for для leftSideOfShip работают должным образом, но второй дает исключение indexOutOfRangeException.
Есть ли лучший способ разделить это и если да, то как?