【3】配列【C#学習メモ】

配列って?

配列とは複数の同じ型の変数を一つにまとめたものです。配列の宣言はnew演算子を用います。

<配列を使わない場合>

int a0 = 1 ;
int a1 = 2 ;
int a2 = 3 ;
int a3 = 4 ;

<配列を使った場合>

int [ ] a = new int [ 4 ] ;
int a [ 0 ] = 1 ;
int a [ 1 ] = 2 ;
int a [ 2 ] = 3 ;
int a [ 3 ] = 4 ;

宣言と同時に初期化することも可能です。

int [] a = new int [] { 1,2,3,4 } ;

次のように省略して書くことも可能です。

int [] a = {1,2,3,4}

多次元配列

多次元配列とは

2つ以上の次元を持つ配列のことです。
f:id:meryl_2525:20190618092524p:plain
こんな感じ・・・?

1次元配列

int [] a = new int [(要素数)];

2次元配列

int [ , ] a = new int [(y方向の要素数) , (x方向の要素数)];

3次元配列

int [ , , ] a = new int [(z方向の要素数) , (y方向の要素数) , (x方向の要素数) ];

多次元配列の代入、初期化

多次元配列の代入、初期化は次のように行います。

using System;

 class Number
{
    static void Main()
    {
        int[,] a = { {1,2},{3,4},{5,6} };
        a[1, 1] = 0;

        Console.WriteLine("a[0,0]=" + a[0, 0]  + '\t'+"a[0,1]="+a[0,1]);
        Console.WriteLine("a[1,0]=" + a[1, 0] + '\t' + "a[1,1]=" + a[1, 1]);
        Console.WriteLine("a[2,0]=" + a[2, 0] + '\t' + "a[2,1]=" + a[2, 1]);
    }
}

実行結果は以下のようになります。
f:id:meryl_2525:20190618094025p:plain

ジャグ配列

ジャグ配列とは?

ジャグ配列とは2次元以上の配列において、各方向の要素数がバラバラな配列のこと。

int [][] a  = new int [3][];
a[0] = new int[3]{1,2,3};
a[1] = new int[2]{4,5};
a[2] = new int[1]{6};

1行目の「3」は最初の次元の大きさ(要素の数)です。

宣言と同時に初期化する方法は以下に記述します。

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

配列の要素数

配列の要素数を求めるには.Lengthを使います。

int[,] a = new int [3,2];
int b = a.Length;

ジャグ配列ではアック列の要素数を求めることができます。

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

int b = a.Length;
int c = a[0].Length;
int d = a[2].Length;

bは2、cは3、dは1になります。