【问题标题】:how can I partially initialize a 3D array in C#?如何在 C# 中部分初始化 3D 数组?
【发布时间】:2017-11-19 03:48:09
【问题描述】:

我需要初始化一个 3 级数组,我知道前 2 个级别的大小,但最后一个是随机确定的,并且因数组而异。

int[,,] myArray;

我怎样才能初始化 2 个第一级而不影响最后一个?

myArray = new int[sizeA, sizeB, ???];

【问题讨论】:

  • 我最好使用数组,因为我根本不需要调整 3D 数组的大小,而且我总是使用 3 个(有效)键来访问一个值。对于这种情况,使用 3D 数组而不是 3D 列表对我来说更有意义。

标签: c# arrays initialization


【解决方案1】:

例如,数组 3 x 5 x Variable_size:

        int[][][] myArray = new int[3][][];
        for (int i = 0; i < 3; i++)
            myArray[i] = new int[5][];

        myArray[0][0] = new int[5];
        myArray[0][1] = new int[6];
        myArray[0][2] = new int[3];
        myArray[0][3] = new int[2];
        myArray[0][4] = new int[7];
        myArray[1][0] = new int[3];
        //...
        myArray[2][4] = new int[9];

        int[,][] myArray = new int[3,5][];
        myArray[0, 0] = new int[3];
        myArray[0, 1] = new int[5];
        myArray[0, 2] = new int[2];
        myArray[0, 3] = new int[4];
        myArray[0, 4] = new int[6];
        myArray[1, 0] = new int[3];
        //...
        myArray[2, 4] = new int[8];

相应地使用:

myArray[0][1][3] = 5;
int a = myArray[1][0][2];

myArray[0, 1][3] = 5;
int a = myArray[1, 0][2];

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多