这是一个通用的编程问题。
我在很多帖子中看到通过双 for 循环遍历二维数组是“可怕的”“丑陋的”等等......这是为什么?
与字典等相比,数组不是一种有效的数据结构吗?双 for 循环也不是比 foreach 或其他替代方法更有效吗?此外,如果您使用 2d 数组,您通常会处理 2d 坐标系。x 和 y 位置已经作为数组的索引“内置”到数据结构中(因此您不需要添加,例如,作为字典键的元组)并且通过更改 for 循环参数,您可以非常便宜地进行迭代通过网格的不同部分,同时完全忽略您不想迭代的部分。例如,为了避免你可以做的“外部”行和列..
for (int x = 1; x < Grid.GetLength(0)-1; x++)
{
for (int y = 1; y < Grid.GetLength(1)-1; y++)
{
Grid[x,y].DoSomething();
}
}
使用 foreach 您将遍历集合中的所有内容,然后检查它是否在您想要的坐标范围内。