如何"翻转"数组?

时间:2012-11-22 21:01:00

标签: c# arrays xna flip

我有以下代码:

BlockTypes[,] BackupQuad = EditModeBlocks.ListOfBlocks; //Create Backup

for (int x = 0; x < 16; x++)
{
    for (int y = 0; y < 16; y++)
    {
        //Translate each point to the opposite side
        EditModeBlocks.ListOfBlocks[15 - x, y] = BackupQuad[x, y]; 
    }
}

首先它构成备份(BackupQuad),然后循环遍历备份阵列中的每个“块”。然后它从备份数组中读取块并将其重写为原始数组15-X。(我也尝试了16-x,但没有工作)。它在很大程度上起作用,但它将一半复制到另一侧,删除那里的所有内容。 enter image description here

1 个答案:

答案 0 :(得分:5)

  

首先它构成备份(BackupQuad)

不,它确实没有。这只需要参考的副本。如果要获取实际对象的副本,则必须明确地执行此操作。例如:

BlockTypes[,] BackupQuad = (BlockTypes[,]) EditModeBlocks.ListOfBlocks.Clone();