Simon
Simon

Reputation: 8357

Can someone help me assign multiple string arrays into one 2d string array?

In C#, can someone help me assign multiple string arrays to a 2d string array?

Here is my code:

string[] test1 = new string[5] { "one", "two", "three", "four", "five" };
string[] test2 = new string[5] { "one", "two", "three", "four", "five" };
string[] test3 = new string[5] { "one", "two", "three", "four", "five" };
string[] test4 = new string[5] { "one", "two", "three", "four", "five" };

string[,] allTestStrings = new string [4, 5];
allTestStrings[0] = test1;
allTestStrings[1] = test2;
allTestStrings[2] = test3;
allTestStrings[3] = test4;

I am getting the following error for each 2d assignment:

Wrong number of indices inside []; expected 2

What am I doing wrong in the above code?

Thanks in advance.

Upvotes: 2

Views: 701

Answers (3)

st mnmn
st mnmn

Reputation: 3667

you can use jagged array, Like this:

string[][] allTestStrings = new string[4][];
            allTestStrings[0] = test1;
            allTestStrings[1] = test2;
            allTestStrings[2] = test3;
            allTestStrings[3] = test4;

Upvotes: 0

Anton Kedrov
Anton Kedrov

Reputation: 1767

You can initialize it like this:

string[,] arr = {
                    { "one", "two", "three", "four", "five" },
                    { "one", "two", "three", "four", "five" },
                    { "one", "two", "three", "four", "five" },
                };

MSDN: Multidimensional Arrays (C# Programming Guide)

Upvotes: 0

Charles Mager
Charles Mager

Reputation: 26223

You have to specify both indicies for your 2D array, e.g.

allTestStrings[0, 0] = test1[0];
allTestStrings[0, 1] = test1[1];

You could extract a method to do this in a loop:

for (var i = 0; i < test1.Length; i++)
{
    allTestStrings[0, i] = test1[i];
}

Upvotes: 2

Related Questions