【发布时间】:2019-04-28 01:42:18
【问题描述】:
我目前正在处理二维数组。我想用计数填充二维数组。我已经设法使用 2 个嵌套的 for 循环来做到这一点。 (这可能是最简单的方法吧?)
//create count
int count = 1;
for (int row = 0; row < matrix.GetLength(0); row++)
{
for (int col = 0; col < matrix.GetLength(0); col++)
{
matrix[row, col] = count++;
}
}
我只是好奇,是否也可以只使用一个 for 循环来填充这个二维数组?
我想创建一个循环来计算行数。当行到达数组的末尾时,列将增加 1。这可能可以通过使用一些 if、if else 和 else 语句来完成,对吧?
这里有人知道如何完成这项工作吗?
【问题讨论】:
-
该代码不适用于行和列大小不同的数组,因为它对两者都引用了
matrix.GetLength(0)。你应该把第二个电话改成matrix.GetLength(1)。 -
是的。您将需要使用模块算术。假设一个数组是 8 x 8 并且您使用的索引 (i) 为 0 到 63。行号是 i/8。列是 i % 8。
-
只是为了好玩
int GetArrayValue(int row, int col, int colLength) { return (col * colLength) + row }