【问题标题】:how to understand initialization of 3d arrays? [closed]如何理解 3d 数组的初始化? [关闭]
【发布时间】:2016-07-04 11:14:19
【问题描述】:

一直在谷歌搜索,但无法理解这个数组是 1,8,3 数组吗?怎么从这个数组中看出 X 为 1,Y 为 8,Z 为 3?

        double[,,] points =
        {
            { {-1, 0, 3}, {-1, -1, -1}, {4, 1, 1 },
            {2, 0.5, 9}, {3.5, 2, -1}, {3, 1.5, 3},
            {-1.5, 4, 2}, { 5.5, 4, -0.5}}
        };

【问题讨论】:

    标签: c# multidimensional-array


    【解决方案1】:

    如果你将它分成几行,你将能够清楚地看到它:

    double[,,] points ={
        { 
            {-1, 0, 3}, 
            {-1, -1, -1}, 
            {4, 1, 1 },
            {2, 0.5, 9}, 
            {3.5, 2, -1}, 
            {3, 1.5, 3},
            {-1.5, 4, 2}, 
            { 5.5, 4, -0.5}
        }
    };
    

    让我们分开吧:

    1º 这是你的数组,它包含的所有内容都是这样的:

    double[,,] points ={
       {//Top level element (1 dimension since there is only one array inside it)
    
       }
    };
    

    2º 顶层内部有八个子数组(现在我们有 (1,8) 维):

    double[,,] points ={
        { 
            {}, //Subarray 1 (Second Level, with 8 elements)
            {}, //Subarray 2
            {}, //Subarray 3
            {}, //Subarray 4
            {}, //Subarray 5
            {}, //Subarray 6
            {}, //Subarray 7
            {}  //Subarray 8
        }
    };
    

    3º 最后在 8 个子数组中的每一个里面有三个元素:

    double[,,] points ={
        { 
            {-1, 0, 3}, //Third Level (with 3 elements)
            {-1, -1, -1}, 
            {4, 1, 1 },
            {2, 0.5, 9}, 
            {3.5, 2, -1}, 
            {3, 1.5, 3},
            {-1.5, 4, 2}, 
            { 5.5, 4, -0.5}
        }
    };
    

    有了这些,我们终于有了所有的维度 (1,8,3)。我建议您格式化数组以使其清晰。

    希望对你有帮助。

    【讨论】:

    • 现在说得通了。感谢所有答案!
    【解决方案2】:

    你只需重新格式化它,基本上:

    double[,,] points =
    {
        { // One top-level element
             {-1, 0, 3}, // 8 "middle-level" elements, each of which has 3 elements
             {-1, -1, -1},
             {4, 1, 1 },
             {2, 0.5, 9},
             {3.5, 2, -1},
             {3, 1.5, 3},
             {-1.5, 4, 2},
             { 5.5, 4, -0.5}
        }
    };
    

    【讨论】:

      【解决方案3】:

      我重新排列了数组并添加了一些 cmets 以澄清结构:

      double[,,] points =
      {   // one element: X
          { // having eight elements: Y
              {-1, 0, 3}, // each having three elements: Z
              {-1, -1, -1}, 
              {4, 1, 1 },
              {2, 0.5, 9}, 
              {3.5, 2, -1}, 
              {3, 1.5, 3},
              {-1.5, 4, 2}, 
              { 5.5, 4, -0.5}
          }
      };
      

      隐含点的第一个元素为X,第二个为Y,第三个为Z。所以元素的数量是1、8、3。

      【讨论】:

        猜你喜欢
        • 2013-01-20
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        相关资源
        最近更新 更多