【问题标题】:Is it possible to modify the dimensions of an array while a c# program is running?是否可以在 c# 程序运行时修改数组的维度?
【发布时间】:2022-11-05 04:41:29
【问题描述】:

您可以使用静态整数指定数组的维度,如下所示:

    static int VertRows = 3;
    static int HorRows = 3;
    int[,] gameBoard = new int[VertRows, HorRows];

但是,我假设因为它们是静态的,我将无法在运行时更改 VertRowsHorRows?有没有办法在脚本启动或运行时更改它们?

【问题讨论】:

  • 数组具有固定大小(即使对于一维数组也是如此)。但是您始终可以使用不同的大小重新分配它们:gameBoard = new int[newHeight, newWidth]。对于动态调整大小,请使用可调整大小的集合,例如。 List<List<int>> 所以每一行都是List<int>
  • 还有static != const。数组维度不必是静态的,也不必是 const 的。您可以使用任何变量作为大小。

标签: c# arrays visual-studio multidimensional-array


【解决方案1】:

如果要在启动时改变 VertRows 和 HorRows 的值,可以参考这段代码:

class Program
{
    static int VertRows = 3;
    static int HorRows = 3;
    int[,] gameBoard = new int[VertRows, HorRows];
    static void Main(string[] args)
    {
        Console.WriteLine("Enter  New VertRows");
        VertRows=Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter New HorRows");
        HorRows=Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("VertRows is "+VertRows);
        Console.WriteLine("HorRows is "+HorRows);
        Console.ReadLine();
    }
}

参考12,我们可以看到常量是用 const 修饰符声明的,并且在程序的生命周期内不能更改。但是静态修饰符声明的字段可以更改。

【讨论】:

  • 谢谢你。他们还能用什么来修改?它不喜欢标准整数
  • @Tiggy对不起,我在之前的回答中犯了一个错误。测试后不起作用。我编辑了我的答案。如果您有任何其他问题,我很乐意提供帮助。如果它可以帮助您,您可以单击“✔”将其标记为答案以将其状态更改为已回答。
  • 啊!再次感谢,我还没有机会测试它,但我会的。 :)
  • @Tiggy我可以知道你是否有机会检查我的答案吗?如果您有任何其他问题,我很乐意提供帮助。
  • 感谢您签到。不幸的是,我没有机会,因为我被埋在程序的其他部分。但是,到时候我可能需要尝试一下——所以我会在尝试的时候回复你。
猜你喜欢
  • 2018-05-27
  • 2011-07-16
  • 2017-04-26
  • 2023-03-11
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
相关资源
最近更新 更多