How can I declare a two dimensional string array?

C#ArraysMultidimensional ArrayJagged ArraysArray Initialization

C# Problem Overview


string[][] Tablero = new string[3][3];

I need to have a 3x3 array arrangement to save information to. How do I declare this in C#?

C# Solutions


Solution 1 - C#

string[,] Tablero = new string[3,3];

You can also instantiate it in the same line with array initializer syntax as follows:

string[,] Tablero = new string[3, 3] {{"a","b","c"},
                                      {"d","e","f"}, 
                                      {"g","h","i"} };

Solution 2 - C#

You probably want this:

string[,] Tablero = new string[3,3];

This will create you a matrix-like array where all rows have the same length.

The array in your sample is a so-called jagged array, i.e. an array of arrays where the elements can be of different size. A jagged array would have to be created in a different way:

string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
    Tablero[i] = new string[3];
}

You can also use initializers to fill the array elements with data:

string[,] Tablero = new string[,]
{
    {"1.1", "1.2", "1.3"},
    {"2.1", "2.2", "2.3"},
    {"3.1", "3.2", "3.3"}
};

And in case of a jagged array:

string[][] Tablero = new string[][]
{
    new string[] {"1.1", "1.2"},
    new string[] {"2.1", "2.2", "2.3", "2.4"},
    new string[] {"3.1", "3.2", "3.3"}
};

Solution 3 - C#

You just declared a jagged array. Such kind of arrays can have different sizes for all dimensions. For example:

string[][] jaggedStrings =  {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};

In your case you need regular array. See answers above. More about jagged arrays

Solution 4 - C#

I assume you're looking for this:

        string[,] Tablero = new string[3,3];

The syntax for a jagged array is:

        string[][] Tablero = new string[3][];
        for (int ix = 0; ix < 3; ++ix) {
            Tablero[ix] = new string[3];
        }

Solution 5 - C#

There are 2 types of multidimensional arrays in C#, called Multidimensional and Jagged.

For multidimensional you can by:

string[,] multi = new string[3, 3];

For jagged array you have to write a bit more code:

string[][] jagged = new string[3][];
            for (int i = 0; i < jagged.Length; i++)
            {
                jagged[i] = new string[3];
            }

In short jagged array is both faster and has intuitive syntax. For more information see: this Stackoverflow question

Solution 6 - C#

try this :

string[,] myArray = new string[3,3];

have a look on http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx

Solution 7 - C#

string[,] Tablero = new string[3,3];

Solution 8 - C#

When you are trying to create a multi-dimensional array all you need to do is add a comma to the declaration like so:

string[,] tablero = new string[3,3].

Solution 9 - C#

string[][] is not a two-dimensional array, it's an array of arrays (a jagged array). That's something different.

To declare a two-dimensional array, use this syntax:

string[,] tablero = new string[3, 3];

If you really want a jagged array, you need to initialize it like this:

string[][] tablero = new string[][] { new string[3], 
                                      new string[3], 
                                      new string[3] };

Solution 10 - C#

A 3x3 (multidimensional) array can also be initialized (you have already declared it) like this:

string[,] Tablero =  {
                        { "a", "b", "c" },
                        { "d", "e", "f" }, 
                        { "g", "h", "i"} 
                     };

Solution 11 - C#

you can also write the code below.

Array lbl_array = Array.CreateInstance(typeof(string), i, j);

where 'i' is the number of rows and 'j' is the number of columns. using the 'typeof(..)' method you can choose the type of your array i.e. int, string, double

Solution 12 - C#

There are many examples on working with arrays in C# here.

I hope this helps.

Thanks, Damian

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondeleteView Question on Stackoverflow
Solution 1 - C#explorerView Answer on Stackoverflow
Solution 2 - C#Dirk VollmarView Answer on Stackoverflow
Solution 3 - C#Bashir MagomedovView Answer on Stackoverflow
Solution 4 - C#Hans PassantView Answer on Stackoverflow
Solution 5 - C#LevView Answer on Stackoverflow
Solution 6 - C#anishMarokeyView Answer on Stackoverflow
Solution 7 - C#Chris AlmondView Answer on Stackoverflow
Solution 8 - C#hav2play21View Answer on Stackoverflow
Solution 9 - C#HeinziView Answer on Stackoverflow
Solution 10 - C#nawfalView Answer on Stackoverflow
Solution 11 - C#Stavros AfxentisView Answer on Stackoverflow
Solution 12 - C#Damian SchenkelmanView Answer on Stackoverflow