fifamaniac04
fifamaniac04

Reputation: 2383

C# Multi-dimensional Array

I'm trying to build a multi-dimensional array to store integer arrays.

Array[] TestArray = new Array[2];

for(int i = 0; i < TestArray.Length; i++)
{
   TestArray[i] = new int[5];
}

How do I go about accessing the newly created members of the Array? I am not sure how to access the newly created arrays in the array although I can see that they're properly created and stored when debugging in Visual Studio.

Upvotes: 1

Views: 626

Answers (5)

NPSF3000
NPSF3000

Reputation: 2451

T[][] is the syntax you are looking for.

int[][] test = new int[2][];  //Declaring the array of arrays.

for (int i = 0; i < test.Length; i++)
{
    test[i] = new int[5];  //Instantiating a sub-arrays.
    for (int x = 0; x < test[i].Length; x++)
        test[i][x] = x + i;  //Filling a sub-arrays.
}

foreach (var array in test)  //iterating over the array of arrays.
    Console.WriteLine("Array: " + string.Join(", ", array));  //using a sub-array
Console.ReadLine();

For more info: http://msdn.microsoft.com/en-us/library/2s05feca.aspx

Upvotes: 1

MattW
MattW

Reputation: 13212

Cast the TestArray element as an int[].

Array[] TestArray = new Array[2];

for(int i = 0; i < TestArray.Length; i++)
{
   TestArray[i] = new [] { 2,3 };
}

var firstIndexOfFirstArray = ((int[])TestArray[0])[0];

Upvotes: 1

Andrei
Andrei

Reputation: 56726

Here is how to access fourth item in the second array:

int value = ((int[]) TestArray.GetValue(1))[3];

Although you would have much less trouble working with jagged arrays:

int[][] TestArray = new int[2][];
for (int i = 0; i < TestArray.Length; i++)
{
    TestArray[i] = new int[5];
}

or multidimensional arrays:

int[,] TestArray = new int[2,5];

Upvotes: 2

Shumail
Shumail

Reputation: 3143

If looking for integer array, try

int[][] testArray

Upvotes: 0

dtb
dtb

Reputation: 217401

If you want an array of integer arrays, then you should declare it as such:

int[][] testArray = new int[2][];

for(int i = 0; i < testArray.Length; i++)
{
   testArray[i] = new int[5];
}

Arrays of arrays are called Jagged Arrays (in contrast to Multidimensional Arrays).

Upvotes: 12

Related Questions