Не источник вашей проблемы, но вам нужно
using (MemoryStream memoryStream = new MemoryStream())
{
serializer.Serialize(memoryStream, this);
memoryStream.Seek(0, SeekOrigin.Begin);
using (StreamReader reader = new StreamReader(memoryStream))
{
return reader.ReadToEnd();
}
}
Мне кажется, что вы не хотите использовать 2D-массив. Вместо этого вы хотите использовать один массив и обращаться к нему, как если бы он был 2D-массивом. Это правильно?
Это означает, что вам нужно применить простую математику к вашей задаче.
Исходя из вашего описания, ваша 2D-таблица имеет одинаковую высоту и ширину, поэтому height = width.
Если вы хотите получить индекс
index = column + width * row
Если вы хотите получить x и y на основе индекса:
column = index % width;
row = index / width;
Примечание: я не тестировал это как код еще. Кроме того, дайте мне знать, если это помогло.