如何在C#

时间:2018-09-05 16:45:21

标签: c#

我想知道是否可以以及如何遍历一个您事先不知道维数的数组。

因此,假设我有一个数组ChessBoard,如下面的示例所示,我如何确定遍历所有维度的循环数? 我不想使用IEnumerate。我正在寻找一种基于维度的数量及其长度来构建多个循环的方法。

我已经能够弄清楚如何检索维数和每个维的长度,但是现在我陷入了困境,因为我不知道如何构建代码来动态读取此多维数组中的所有元素。

在此示例中,很显然,数组具有两个维度,但是我希望它也适用于不同的数组,例如具有三个维度的多维数据集,甚至更复杂的数组。 这是我的代码:

int[] Rows = new int[8]  {1,2,3,4,5,6,7,8};

string[] Columns = new string[8]  {"a","b","c","d","e","f","g","h"};

string[,] ChessBoard = new string[8,8];

for (int z = 0; z < Rows.Length; z++)
{
    for(int y = 0; y < Columns.Length; y++)
    {
        ChessBoard[z,y] = Rows[z].ToString() + Columns[y];          
    }       
}

int NumOfDimensions =  ChessBoard.Rank;
List<int> DimensionLengths = new List<int>();

for (int s = 0; s < NumOfDimensions; s++)
{  
    DimensionLengths.Add(ChessBoard.GetLength(s));
}

因此,通过上面的代码,我创建了一个列表,其中包含此特定数组每个维度的长度。

如何使用此信息来迭代数组,使其同样适用于具有不同维数的数组?

我再次基于维度的数量来考虑多个循环,然后使用每个维度的长度来确定每个循环的条件。

0 个答案:

没有答案