読者です 読者をやめる 読者になる 読者になる

C#_配列の要素数 (長さ) を求める

総数を求める場合

配列.Length;

 

次元ごとに求める場合

多次元配列.GetLength( 次元数 );

0 が一番浅い。

 

以下、サンプルコード 

一次元

int testO = new int { 2, 3, 4, 5 };
int c1 = testO.Length;
//c1長さ:4

 

二次元

string[,] testT = new string[3, 4] {
  {"あ", "い", "う", "え" },
  {"か", "き", "く", "け" },
  {"さ", "し", "す", "せ" },
};
int c21 = testT.Length;
int c22 = testT.GetLength(0);
int c23 = testT.GetLength(1);
//c21長さ:12
//c22長さ:3
//c23長さ:4

 

三次元

int[,,] testThArray = new int[2,3,4] {
    {
        {001, 002, 003, 004},
        {101, 102, 103, 104},
        {201, 202, 203, 204},
    },
    {
       {301, 302, 303, 304},
       {401, 402, 403, 404},
       {501, 502, 503, 504},
    },
};
int c3T = testThArray.Length;
int c30 = testThArray.GetLength(0);
int c31 = testThArray.GetLength(1);
int c32 = testThArray.GetLength(2);
//c3T長さ:24
//c30長さ:2
//c31長さ:3
//c32長さ:4

 

三次元のような配列

int[][,] testThAlmost = new int[2][,] {
   new[,] {
       {10, 11, 12, 13},
       {20, 21, 22, 23},
       {31, 32, 33, 24}
   },
   new[,] {
       {70, 71, 72, 73},
       {80, 81, 82, 83},
       {91, 92, 93, 94}
   }
};
int cA31 = testThAlmost.Length;
int cA32 = testThAlmost.GetLength(0);
int cA33 = testThAlmost.GetLength(1);
//cA31長さ:2
//cA32長さ:2
//cA33長さ:エラー

foreach (var tT in testThAlmost)
{
    int i = tT.GetLength(0);
    int j = tT.GetLength(1);
    //i長さ:3
    //j長さ:4
    //tT は testThAlmost[0] と testThAlmost[1] (二次元配列)
}

 

こちらを参照
https://www.ipentec.com/document/document.aspx?page=csharp-get-array-length

 

以上。
List ではCountを用いる。