预期嵌套数组初始化程序

时间:2014-11-08 00:20:16

标签: c# arrays visual-studio

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

string[, , , , , ,] conj = new string[,,,,,,] {
        {"aimer", "aime", "aimes", "aime", "aimons", "aimez", "aiment"},
};

我收到错误“预期嵌套数组初始值设定项”。 我以前从来没有制作过这么大的阵列,我找不到任何关于我为什么会收到这个错误以及我需要做些什么来解决这个问题的搜索。

感谢您的帮助!

2 个答案:

答案 0 :(得分: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 , } ,
                } ,
              } ;

人们可能会看到一种模式在这里发展。你应该可以从这里拿走它(提示:你将会有一个嵌套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 , } ,
                } ,
              } ;

编译器发出呜呜声说,An array initializer of length '3' is expected。这是因为x3d[0,1]初始值设定项的初始化程序不一致。

答案 1 :(得分:0)

您的数组定义string[, , , , , ,]不应该有逗号。请改为string[]

数组[]是一个列表。你所拥有的是一个矩形阵列(虽然这个定义可能不再适用于那么多维度)。更简单的情况:[,],(实际上是一个矩形阵列)你得到的更像是一个"网格"项目而不是清单。