您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

获取二维数组中的相邻元素?

获取二维数组中的相邻元素?

如果您不担心顺序,最干净的方法可能是使用几个循环:

result = new List<int>(8);
for (dx = -1; dx <= 1; ++dx) {
    for (dy = -1; dy <= 1; ++dy) {
        if (dx != 0 || dy != 0) {
            result.Add(array[x + dx][y + dy]);
        }
    }
}

如果顺序很重要,则可以按所需顺序构造所有(dx,dy)的列表,然后遍历该列表。

正如评论中指出的那样,您可能希望添加边界检查。您可以这样做(假设顺序无关紧要):

List<int> result = new List<int>(8);
for (int dx = (x > 0 ? -1 : 0); dx <= (x < max_x ? 1 : 0); ++dx)
{
    for (int dy = (y > 0 ? -1 : 0); dy <= (y < max_y ? 1 : 0); ++dy)
    {
        if (dx != 0 || dy != 0)
        {
            result.Add(array[x + dx][y + dy]);
        }
    }
}
其他 2022/1/1 18:14:29 有608人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶