【问题标题】:c# Declaration unknown number of matrix in a loopc#在循环中声明未知数量的矩阵
【发布时间】:2018-08-23 23:17:56
【问题描述】:

我需要在循环中声明 16x16 矩阵块。因为我不知道我必须创建多少块。它根据宽度变化。我有这样的代码,块的名称必须是这样的: "block1, block2, block(i)" 我怎样才能在循环中声明这个块。

for(int i = 0; i < width; i++)
{
    int[,] block = new int[16, 16];
}

【问题讨论】:

  • 您可以创建一个矩阵列表。类似于List&lt;int[,]&gt;。这样你就不需要每个名字了,你只需要引用block[1]block[2]等。
  • 对不起,我不明白这一点。我需要一个代码,所以我为每个 i 值创建 16x16 矩阵。稍后我将在循环中再次使用此矩阵。示例宽度 =10,我总共需要 10 个矩阵 16x16。

标签: c# loops matrix declaration


【解决方案1】:

试试这个:

List<int[,]> blocks = new List<int[,]>();

for(int i = 0; i < width; i++)
{
  blocks.Add(new int[16, 16]());
}

您不必声明一堆不同的矩阵,而是拥有它们的列表。然后,您可以通过索引引用每个单独的矩阵。

Console.WriteLine(blocks[6][2, 13]);

这将打印索引 [2, 13] 处的第 7 个块矩阵中的任何内容。

希望这会有所帮助。

【讨论】:

  • 是的,谢谢。现在我想知道我可以做 2d 吗?像块 [x][y]=[4][2]
  • 我不明白为什么不这样做。我不确定你打算用它做什么,所以你的语法可能需要做一些工作,但只是尝试一下。
  • 我做到了。我使用这个声明 List> blocks = new List 然后使用 blocks[i][j][x, y] 来访问索引。现在可以了,谢谢
猜你喜欢
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 2016-06-07
相关资源
最近更新 更多