5

I want to store ARRAY from 3 dimensional array into buildingCostIds, but it says I MUST have 3rd number.

public static int[, ,] buildingCost = { {{0,1,2},{5,5,5}}};

public static void addBuilding(int[] ids, int[] amounts, int buildingId)
{
    int[] buildingCostIds = buildingCost[buildingId, 0, *];
}

*I need third number here, but I don't want it because it will extract just number, I want whole array!

PROBLEM SOLVED, solution:

public static Array extractArray(int dim1, int dim2)
{
    int[] tempArray = { };

    for (int number=0;number<=2; number++)
    {
    tempArray[number] = buildingCost[dim1, dim2, number];
    }
    return tempArray;
}
matijakevic
  • 77
  • 1
  • 1
  • 5

2 Answers2

5

This might be simpler if you use an array-of-arrays, or jagged array [][][] like

int[][][] buildingCost = new int[2][][];

Then you can access buildingCost[buildingId, 0] which is an array of ints.

There is a related question here


EDIT

Be aware the "problem solved" you added to the question duplicates the data, so you may run out of memory if you keep doing this. Consider using a List of Lists of Lists and lazy evaluating what you need.

Community
  • 1
  • 1
doctorlove
  • 18,872
  • 2
  • 46
  • 62
2

Try This

int[, ,] array3D = new int[3,3,3]

WinHtaikAung
  • 414
  • 2
  • 11