array of arrays
you need a jagged array, that is the best solution here
int[][] j = new int[][]
or:
string[][] jaggedArray = new string[3][];
jaggedArray[0] = new string[5];
jaggedArray[1] = new string[4];
jaggedArray[2] = new string[2]
then:
jaggedArray[0][3] = "An Apple"
jaggedArray[2][1] = "A Banana"
etc...
note:
Before you can use jaggedArray, its elements must be initialized.
in your case you could wrap the array in another class but that seems highly redundant imho
Simple example of array of arrays or multidimensional array is as follows:
int[] a1 = { 1, 2, 3 };
int[] a2 = { 4, 5, 6 };
int[] a3 = { 7, 8, 9, 10, 11 };
int[] a4 = { 50, 58, 90, 91 };
int[][] arr = {a1, a2, a3, a4};
To test the array:
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr[i].Length; j++)
{
Console.WriteLine("\t" + arr[i][j].ToString());
}
}
You can use List of List. List - it is just dynamic array:
var list = new List<List<int>>();
list.Add(new List<int>());
list[0].Add(1);
Console.WriteLine(list[0][0]);