我正在努力思考最优雅/最简单的方法。也许我想得太多了。
可以说我有一个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/