C# 配列


 
他のプログラミング言語と同様に、C# も配列をサポートしています。配列とは、同じ型のデータを格納するために使用される、連続したメモリ位置の固定サイズの順次コレクションです。配列内の各要素はインデックス値に対応し、インデックスは 0 から順番に増加します。インデックスを通じて配列内の指定された要素にアクセスできます。

 

100 人の生徒の得点を保存したい場合、通常の変数を使用すると、number0、number1、…、number99 などの 100 個の整数変数を定義する必要がある場合があります。配列を使用する場合は、はるかに簡単です。数値などの長さ 100 の整数配列を定義し、numbers[0]、numbers[1]、…、numbers[99] を使用するだけです。 ] ( [ ]数字は配列のインデックスです) を使用して、配列内の各要素にアクセスします。

次の図に示すように、すべての配列は連続したメモリ位置で構成され、最も低いメモリ アドレスは最初の要素に対応し、最も高いメモリ アドレスは最後の要素に対応します。

1. 配列を宣言する

C# で配列を宣言するための構文は次のとおりです。

data_type[] array_name;

このうち、data_type は配列内の要素の型を指定するために使用され、 [ ]は配列の次元を指定するために使用され、array_name は配列の名前です。

サンプルコードは次のとおりです。

int[] array1          
double[] array2   

2. 配列を初期化する

配列を宣言するだけでは不十分です。配列は初期化された後にのみ各要素に値を割り当てることができます。配列は参照型であるため、次のように new キーワードを使用して配列を初期化する必要があります。

int[] array1                 
array1 = new int[10]      
double[] array2          
array2 = new double[5] 

さらに、次のように、配列の宣言と初期化を同時に実行することもできます。

int[] array1 = new int[10] 
double[] array2 = new double[5]

ヒント: 配列の初期化プロセスにおいて、 new int[10] の[ ]内の数字は配列の長さ、つまり配列に格納できる要素の最大数を表し、長さを設定できます。必要に応じて配列の。

3. 配列要素に値を代入する

次のように、配列のインデックスを使用して、配列内の各要素に値を割り当てることができます。

int[] arr = new int[10];
arr[0] = 10;
arr[1] = 11;

配列の各要素に個別に値を代入するのは大変です。配列の宣言時に直接配列に値を代入することもできます。配列の各要素を順番に{ }に入れるだけで済みます。 、各要素を使用し,次のように区切ります。

double[] arr1 = {96.5, 98.0, 99.5, 90.0};
int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9};

上記の方法を使用すると、配列の長さを事前に設定する必要はありませんが、配列の長さを指定したい場合はどうすればよいでしょうか。次のようにしてください:

double[] arr1 = new double[4]{96.5, 98.0, 99.5, 90.0};
int[] arr2 = new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

もちろん、次のように配列の長さを省略することもできます。

double[] arr1 = new double[]{96.5, 98.0, 99.5, 90.0};
int[] arr2 = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

配列は、定義された配列を使用して同じ型の別の配列に値を割り当てる変数のようにすることもできます。この場合、以下に示すように、2 つの配列は同じメモリ アドレスを指します。

int[] arr1 = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] arr2 = arr1;

ヒント: 配列を作成すると、C# コンパイラは配列の型に応じて配列内の各要素のデフォルト値を暗黙的に初期化します。たとえば、int 型の配列内のすべての要素は 0 に初期化されます。

4. 配列内の要素にアクセスする

以下に示すように、配列のインデックス (添え字とも呼ばれます) を介して配列内の指定された要素にアクセスできます。配列名の後に角括弧[ ]を追加し、対応する配列インデックスを入力するだけです。

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

[例] 次の例は、配列内の各要素にアクセスする方法を示しています。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args){
            int[] arr = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
            for(int i = 0; i < 10; i++){
                Console.WriteLine("arr[{0}] = {1}", i, arr[i]);
            }
            Console.ReadLine();
        }
    }
} 

操作の結果は次のようになります。

arr[0] = 0
arr[1] = 1
arr[2] = 2
arr[3] = 3
arr[4] = 4
arr[5] = 5
arr[6] = 6
arr[7] = 7
arr[8] = 8
arr[9] = 9

5. foreach を使用して配列を走査します

前の例では、 for ループを使用して配列内の各要素にアクセスしました。さらに、 foreach ループを使用して配列内の要素を走査することもできます。サンプル コードは次のとおりです。

 using System;

namespace it-kiso.com
{
    class Demo{
        static void Main(string[] args){
            int[] arr = new int[]{100, 101, 102, 103, 104, 105, 106, 107, 108, 109};
            int index = 0;
            foreach(int i in arr){
                Console.WriteLine("arr[{0}] = {1}", index, i);
                index++;
            }
            Console.ReadLine();
        }
    }
} 

操作の結果は次のようになります。

arr[0] = 100
arr[1] = 101
arr[2] = 102
arr[3] = 103
arr[4] = 104
arr[5] = 105
arr[6] = 106
arr[7] = 107
arr[8] = 108
arr[9] = 109

「 C# 配列」についてわかりやすく解説!絶対に観るべきベスト2動画

【9分で解説】はじめてのC# 丁寧に学ぶC#入門⑭【配列】