预期嵌套数组初始化程序

use*_*895 -1 c# arrays visual-studio

我正在尝试创建一个在一行中包含6个字符串的数组,以及之后的许多其他行.这是我的代码:

string[, , , , , ,] conj = new string[,,,,,,] {
        {"aimer", "aime", "aimes", "aime", "aimons", "aimez", "aiment"},
};
Run Code Online (Sandbox Code Playgroud)

我收到错误"预期嵌套数组初始化程序".我以前从来没有做过这么大的数组,我找不到任何关于我为什么会收到这个错误以及我需要做些什么来解决这个错误的问题.

谢谢您的帮助!

Nic*_*rey 6

您正在尝试初始化多维矩形阵列(7维!).

所以...

// 1D array containing 2 elements:
int[]  r1d = { 1 , 2 , } ;

// 2x3 array containing 6 elements:
int[,] r2d = {
               { 1 , 2 , 3 , } ,
               { 4 , 5 , 6 , } ,
             } ;

// a 2x3x4 array
int[,,] r3d = {
                {
                  {  1 ,  2 ,  3 ,  4 , } ,
                  {  5 ,  6 ,  7 ,  8 , } ,
                  {  9 , 10 , 11 , 12 , } ,
                } ,
                {
                  { 13 , 14 , 15 , 16 , } ,
                  { 17 , 18 , 19 , 20 , } ,
                  { 21 , 22 , 23 , 24 , } ,
                } ,
              } ;
Run Code Online (Sandbox Code Playgroud)

人们可能会看到这里出现一种模式.你应该可以从这里拿走它(提示:你将会有嵌套7深的花括号).

请注意,每个初始值设定项必须具有相同的等级,以免编译器感到不安.例如,如果你说:

int[,,] r3d = {
                {
                  {  1 ,  2 ,  3 ,  4 , } ,
                  {  5 ,  6 ,  7 ,  8 , } ,
                  {  9 , 10 , 11 , 12 , } ,
                } ,
                {
                  { 13 , 14 , 15 , 16 , } ,
                  { 17 , 18 , 19 , 20 , } ,
                //{ 21 , 22 , 23 , 24 , } ,
                } ,
              } ;
Run Code Online (Sandbox Code Playgroud)

编译器抱怨并说,An array initializer of length '3' is expected.那是因为初始化程序x3d[0,1]的初始化程序不一致.