Majs
Majs

Reputation: 66

Converting a 2d array to a 1d List, then back to a 2d array

In order to serialize a 2d array I am first flattening it like so:

InfoCell[,] cells = new InfoCell[size, size];
List<InfoCell> flattenedCells= new List<InfoCell>();

foreach(InfoCell infoCell in cells )
{
    flattenedCells.Add(infoCell);
}

Knowing the size of the 2d array, how can I convert this 1d List back into a 2d array?

Upvotes: 0

Views: 141

Answers (1)

Yaroslav Bres
Yaroslav Bres

Reputation: 1327

You can try something like this:

var array = new string[rowsSize, columnSize];
var list = new List<string>();
for (var i = 0; i < rowsSize; i++)
{
   for (var j = 0; j < columnSize; j++)
   {
      list.Add(array[i,j]);
   }   
}

var newArray = new string[rowsSize, columnSize];
for (var i = 0; i < rowsSize; i++)
{
   for (var j = 0; j < columnSize; j++)
   {
       var index = i * columnSize + j;
       newArray[i, j] = list[index];
   }   
}
        

Upvotes: 1

Related Questions