如何"翻转"一个数组?

Ozt*_*aco 0 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]; 
    }
}
Run Code Online (Sandbox Code Playgroud)

首先它构成一个backup(BackupQuad),然后循环遍历备份数组中的每个"块".然后它从备份数组中读取块并将其重写为原始数组15-X.(我也尝试了16-x,但没有工作).它在很大程度上起作用,但它将一半复制到另一侧,删除那里的所有内容. 在此输入图像描述

Jon*_*eet 5

首先它构成备份(BackupQuad)

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

BlockTypes[,] BackupQuad = (BlockTypes[,]) EditModeBlocks.ListOfBlocks.Clone();
Run Code Online (Sandbox Code Playgroud)