我正在努力思考最优雅/最简单的方法。也许我想得太多了。

可以说我有一个5x5的整数数组,看起来像这样:

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0


还有另一个2x2整数数组,如下所示:

5 1
2 3


我想在5x5数组中选择一个位置,例如[2] [2],然后将第二个数组中的值放到第一个数组中,所以看起来像这样:

0 0 0 0 0
0 0 0 0 0
0 0 5 1 0
0 0 2 3 0
0 0 0 0 0


我最初的想法是在确定要复制的数组中的行数/列数后使用for循环,但是今天早上我似乎不知道要想办法做到这一点。

有什么建议么?

编辑:

抱歉,这是我目前的操作方式。只是想知道是否有更好的方法。

这实际上是我正在做的整体工作的一部分-“ RoomDoors”是我们的较小数组,而“ map”是要移入的较大数组。它是随机地图生成器的一部分,该生成器需要知道房间中哪些瓷砖的“边缘”上具有可以连接到其他房间的门。 RoomDoors存储4个布尔值,每个方向一个,告诉我那里是否有门。

    roomDoors = previousRoom.GetComponent<RoomDataInterface> ().rooms; //2d array of room/door arrangement in new room
    sizeCol = roomDoors.GetLength (0);
    sizeRow = roomDoors.GetLength (1);
    map [10, 10] = roomDoors [0, 0]; // top left of the room goes in the spot
    for (int i = 0; i < sizeCol; i ++){
        for (int j = 0; j < sizeRow; j ++) {
            map [i + 10,j + 10] = roomDoors[i,j];
        }

最佳答案

线

map [10, 10] = roomDoors [0, 0];


这是多余的,因为在循环的第一次迭代中将执行相同的分配。删除生产线将导致解决方案更小,更有效。

关于c# - 将较小的阵列复制到较大的阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28089066/

10-10 11:16