首页 > 解决方案 > 如何垂直翻转二维数组 C# 中的整数

问题描述

我正在尝试垂直翻转 2D 数组,因此我正在尝试将其转为:

1 2 3 4 1
5 6 7 8 2 
4 3 2 1 1
8 7 6 5 2

进入

8 7 6 5 2
4 3 2 1 1
5 6 7 8 2
1 2 3 4 1

到目前为止,我有一个嵌套的 for 循环,

for (int i= 0; i<rows; i++)
            {
                for (int j = 0; j<columns; j++)
                {
                    WillSmith[i, j] = arr[i,j];
                    
                }
            }

'WillSmith' 是翻转数组,但我一直得到与我输入的数组相同的数组。

我不知道我做错了什么

编辑:我现在已经将它交换为读取 arr[j,i],但现在我收到一个错误,说我已经溢出了索引。我需要它才能适用于非方形数组,并且由于我正在测试的数组不是方形的,所以我不能只使用 newArray[i,j] = oldArray[j,i]。

标签: c#

解决方案


WillSmith[rows-1-i, j] = arr[i, j];

您想保留列索引,只需按列反转行。所以从头读,从尾写。


推荐阅读