Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# 3 dimensional array

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;
}
like image 591
matijakevic Avatar asked Jul 27 '13 09:07

matijakevic


People also ask

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

What do you mean by C?

C is a structured, procedural programming language that has been widely used both for operating systems and applications and that has had a wide following in the academic community. Many versions of UNIX-based operating systems are written in C.

Is C language easy?

C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.

What is C language used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...


2 Answers

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.

like image 114
doctorlove Avatar answered Sep 21 '22 04:09

doctorlove


Try This

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

like image 39
WinHtaikAung Avatar answered Sep 17 '22 04:09

WinHtaikAung