【问题标题】:How to assign value in two dimensional array如何在二维数组中赋值
【发布时间】:2014-05-01 12:54:49
【问题描述】:

如何在c#中给二维数组赋值

我的代码是

int[,] matarix = new int[4, 5];

        for (int x = 0; x < 4; x++)
        {
            for (int y = 0; y < 5; y++)
            {
                matarix[x, y] = x+"-"+y;
            }
        }

我尝试了上面的代码,但它显示错误“无法将字符串隐式转换为 int” 怎么做 ?谢谢

【问题讨论】:

  • 你走对了。你想对它做什么?只需分配一个整数值,如matarix[x, y] = 5;
  • 那么您想为每个单元格分配什么值?考虑到除了价值之外,您还拥有一切……
  • x+"-"+y 是一个字符串。您的 matarix 是一个 int 数组。你想要一个字符串数组吗?

标签: c# arrays


【解决方案1】:

你在正确的轨道上。只需分配一个值。

int[,] matarix = new int[4, 5];

for (int x = 0; x < 4; x++) {
    for (int y = 0; y < 5; y++) {
        matarix[x, y] = VALUE_HERE;
    }
}

我会提出的一个建议是使用Array.GetLength,而不是对for 循环进行硬编码。您的代码将变为:

int[,] matarix = new int[4, 5];

for (int x = 0; x < matarix.GetLength(0); x++) {
    for (int y = 0; y < matarix.GetLength(1); y++) {
        matarix[x, y] = VALUE_HERE;
    }
}

您传入数组的一个维度,它会告诉您该维度存在多少索引。

【讨论】:

    【解决方案2】:

    这是我通常用来填充二维数组的模板。 它是一条线,易于更改。

            int[,] Foo = new int[4,5];
            for(int i=0;i < Foo.Length; i++, Foo[i % Foo.GetLength(0),i / Foo.GetLength(1)] = 0; // Or value to assign
    

    另外请注意,当您给它字符串时,您的数组包含整数(“”将其转换为字符串,而 x - y 将其保持为整数) 希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-10
      • 2017-01-29
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多