在 C# 中,可以使用常量初始化多维数组,如下所示:
Object[,] twodArray = new Object[,] { {"00", "01", "02"},
{"10", "11", "12"},
{"20", "21", "22"} };
我个人认为用硬编码常量初始化数组对于测试练习之外的任何事情都是毫无用处的。无论如何,我迫切需要做的是使用现有数组初始化一个新的多维数组,如上所述。 (它们具有相同的项目数,但内容当然仅在运行时定义)。
我想做的一个例子是。
Object[] first = new Object[] {"00", "01", "02"};
Object[] second = new Object[] {"10", "11", "12"};
Object[] third = new Object[] {"20", "21", "22"};
Object[,] twodArray = new Object[,] { first, second, third };
不幸的是,这不能编译为有效代码。有趣的是,当我尝试时
Object[,] twodArray = new Object[,] { {first}, {second}, {third} };
代码did编译并运行,但是结果并不如预期——一个 3 x 3 的对象数组,结果是一个 3 x 1 的数组,每个数组有 3 个元素。发生这种情况时,我无法使用以下方式访问我的数组:
Object val = twodArray[3,3];
我得走了:
Object val = twodArray[3,1][3];
这显然不是想要的结果。
那么,有没有什么方法可以从多个现有数组初始化这个新的二维数组,而不需要迭代呢?