初始化多维多维数组

时间:2019-03-05 13:00:39

标签: c#

我不知道发生了什么事:D。我想创建多维char数组,但是看不到错误。

private char[] Letters = new char[52] { 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f',
                                                'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L',
                                                'l','M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r',
                                                 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y',
                                                'y', 'Z', 'z'};

private char[] SpecialLetteer = new char[7] { '#', '$', ':', '!', '_', '*', '@' };

private char[,] LETTERS = new char[52, 7] { {'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f',
                                                'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L',
                                                'l','M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r',
                                                 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y',
                                                'y', 'Z', 'z'}, { '#', '$', ':', '!', '_', '*', '@' } };

ScreenShot from Visual Studio

5 个答案:

答案 0 :(得分:0)

new char[52, 7]表示将有一个52行7列的2D数组。因此,对于“字母”的第一行,您有52列[a-zA-Z]。

这就是为什么它显示错误。

答案 1 :(得分:0)

您正在以错误的方式初始化多维数组。第一个数字表示行数,第二个-表示每行的值数。因此,在您的情况下,您应该有52行和7个字符。例如:

select trunc(tran_date) from tablename;

答案 2 :(得分:0)

您可以这样做:

  class Program
  {
    static void Main(string[] args)
    {
      char[] Letters = new char[52] { 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f',
                                      'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L',
                                      'l','M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r',
                                      'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y',
                                      'y', 'Z', 'z' };

      char[] SpecialLetteer = new char[7] { '#', '$', ':', '!', '_', '*', '@' };

      char[][] LETTERS = new char[][] { Letters, SpecialLetteer };
    }

  }

答案 3 :(得分:0)

如果您想要一个包含一组字符的多维数组,一组52个字符,另一组7个字符,则正确的语法应为

char[][] LETTERS = new char[2][] { new char[] {'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f',
                                            'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L',
                                            'l','M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r',
                                             'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y',
                                            'y', 'Z', 'z'}, 
                                            new char []{ '#', '$', ':', '!', '_', '*', '@' } };

通常称为锯齿状数组。

您的语法声明了一个52 x 7的数组。

答案 4 :(得分:0)

首先,将鼠标悬停在红色曲线上,然后阅读该消息:

enter image description here

它说:

  

预期长度为'52'的数组初始化程序。

因此解决方案将是满足此期望,并将52个元素放入X维。但这只能解决一半的问题。下一个问题是您正在使用var options = { quality: 100, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, allowEdit: false, encodingType: Camera.EncodingType.JEPG, saveToPhotoAlbum: false, correctOrientation: true }; 二维数组。如果看一下documentation of arrays,您可以在示例中看到,每个子数组的长度都相同:

  

[,]
  // Declare and set array element values

我建议使用交错的数组,因为它允许子数组具有不同的长度,或者将List用作第一个数组的容器:

int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };