gpt4 book ai didi

c# - 检查元素索引是否在二维数组内(用于在任何方向移动一个)

转载 作者:行者123 更新时间:2023-11-30 15:16:52 25 4
gpt4 key购买 nike

我有这个二维对象数组

private Cell[,] mapCells = new Cell[10, 10];

我想检查我的数组中是否存在坐标为 x = my = n 的键值对。

我喜欢这个

        bool cellExists = index.x >= 0 && // check left
index.y >= 0 && // check bottom
index.x < mapCells.GetLength(0) && // check right
index.y < mapCells.GetLength(1); // check top

所以我用这个 bool 检查单元格是在 map 上还是外面。

有没有更优雅的方法来检查这个?


编辑:

当检查这个时,我得到一个像

这样的运动方向
  Vector2 dir = new Vector2(/* this can be
(0,1) // up
(0,-1) // down
(-1,0) // left
(1,0) // right
*/);

所以我知道给出了哪个方向。

当我向右移动时,我认为不需要检查左侧。

最佳答案

嗯,你可以把它隐藏在扩展方法后面,让它看起来更优雅。

public static class Extensions
{
public static bool IsExist(this Cell[,] mapCells, Cell index)
{
bool cellExists = index.x >= 0 &&
index.y >= 0 &&
index.x < mapCells.GetLength(0) &&
index.y < mapCells.GetLength(1);

return cellExists;
}
}

这样称呼

mapCells.IsExist(index);

关于c# - 检查元素索引是否在二维数组内(用于在任何方向移动一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48396830/

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