gpt4 book ai didi

c# - 将较小的数组复制到较大的数组中

转载 作者:行者123 更新时间:2023-11-30 16:09:06 24 4
gpt4 key购买 nike

我正在努力想出执行此操作的最优雅/最简单的方法。也许我有点想多了。

假设我有一个 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”是它要移入的较大数组。它是随机 map 生成器的一部分,需要知道房间中瓷砖的哪些“边缘”上有可以连接到其他房间的门。 RoomDoors 存储 4 个 bool 值,每个方向一个,告诉我那里是否有一扇门。

    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];
}

最佳答案

我认为你不能做得更好,只需删除不必要的分配即可:

roomDoors = previousRoom.GetComponent<RoomDataInterface> ().rooms;
sizeCol = roomDoors.GetLength (0);
sizeRow = roomDoors.GetLength (1);
for (int i = 0; i < sizeCol; i ++)
for (int j = 0; j < sizeRow; j ++)
map [i + 10, j + 10] = roomDoors[i, j];

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com