当前位置:网站首页>Attribute acquisition method and operation notes of C # multidimensional array

Attribute acquisition method and operation notes of C # multidimensional array

2022-07-02 11:23:00 chengjl8

C# Provides various attribute acquisition methods for multidimensional arrays , But its expression is different from our habits , therefore , It also took some brains , I didn't understand it until I wrote some code tests , Now let's share :

1、 One dimensional array

A one-dimensional array is a combination of data with one row and multiple columns , It will be explained in the two-dimensional array later .

2、 Two dimensional array

We define a two-dimensional array as follows :

double[,] array1 = new double[3, 6];//2 Dimension group

Its image structure is as follows , here : dimension =2; The first 1 Dimensions are rows , Here for 3; The second dimension is the number of columns per row , Here for 6.

012345
The first 0 That's ok
The first 1 That's ok
The first 2 That's ok

here , Get the attributes and results of the array with code as follows ( The indexes are all from 0 Start ):

            double[,] array1 = new double[3, 6];//2 Dimension group            
            int a = array1.Rank;// dimension =2           
            a = array1.GetLength(0);// For the first 0 The number of elements of dimension =3
            a = array1.GetLength(1);// For the first 1 The number of elements of dimension =6
            a = array1.GetLowerBound(0);// For the first 0 The first element index of the dimension =0 
            a = array1.GetUpperBound(0);// For the first 0 Index of the last element of the dimension =2 
            a = array1.GetLowerBound(1);// For the first 0 The first element index of the dimension =0 
            a = array1.GetUpperBound(1);// For the first 1 Index of the last element of the dimension =5 
            a = array1.Length;// Get the total number of elements =18

 3、 Three dimensional array

We define a three-dimensional array as follows :

double[,,] array2 = new double[2, 3, 6];//3 Dimension group

Its image structure is as follows , here : dimension =3; The first 1 Three dimensional layers , Here for 2, The first 2 Dimensions are rows , Here for 3; The first 3 The first dimension is the column of each row , Here for 6.

 

            double[,,] array2 = new double[2, 3, 6];//3 Dimension group 
            a = array2.Rank;// dimension =3
            a = array2.GetLength(0);// For the first 0 The number of elements of dimension =2
            a = array2.GetLength(1);// For the first 1 The number of elements of dimension =3
            a = array2.GetLength(2);// For the first 2 The number of elements of dimension =6
            a = array2.Length;// Get the total number of elements =36

4、 More dimensions

So do more dimensions , It's just adding a few more commas to the definition [,,,,,,,], But be careful : The number of elements increases exponentially .

5、 Attention to operation

  • Array operation is much faster than list , If possible , Just use this array structure .
  • The efficient method of traversing an array is multi-layer for loop , The higher the dimension number, the more internal circulation ( See below ), On the contrary, the efficiency decreases :
    
                for(int i = 0; i < 3; i++)
                {
                    for(int j = 0; j < 6; j++)
                    {
                        array1[i, j] = -1;
                    }
                }

原网站

版权声明
本文为[chengjl8]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/183/202207020815074945.html