C# 配列チュートリアル: 作成、宣言、初期化
⚡ スマートサマリー
C#の配列は、同じデータ型を持つ固定サイズの要素を、1つの変数名の下に格納します。各要素は0から始まるインデックスに配置されるため、値の宣言、初期化、およびアクセスは高速かつ予測可能なものとなります。
C# の配列とは何ですか?
配列は、コレクションまたは一連の要素を格納するために使用されます。 これらの要素は同じタイプになります。
たとえば、整数値の配列がある場合、その配列は [1, 2, 3, 4] などの値のコレクションになる可能性があります。 ここで、配列の要素数は 4 です。
配列は、同じ型の値のコレクションを格納する場合に便利です。 したがって、宣言する代わりに、 変数 すべての要素に対して、XNUMX つの変数を宣言するだけで済みます。
この変数は、配列の要素を格納する役割を担う配列または要素のリストを指します。
C# で配列を操作する方法を見てみましょう。 この例では、整数の配列を宣言し、それに応じて操作します。
以下のコードはすべて Program.cs ファイルに対して作成されていることに注意してください。
ステップ1) 配列の宣言 – 最初のステップは配列を宣言することです。 以下のコード例でこれを実現する方法を見てみましょう。
Code 説明:-
- 最初の部分は、 データ・タイプ。 配列で使用される要素のタイプを指定します。 したがって、この例では、整数の配列を作成しています。
- XNUMX 番目の部分 [ ] は、配列のランクを指定します。 (ランクは、配列に含まれる要素の数を指定するプレースホルダーです)
- 次は配列の名前で、この場合は「values」です。 緑色の波線の下線が表示されていますが、心配する必要はありません。 これは、.Net が配列を宣言したことを示しているだけですが、それをどこにも使用していません。
ステップ2) 次のステップは、配列を初期化することです。 ここでは、配列が保持する値の数を指定します。 また、配列の各要素に値を割り当てます。
Code 説明:-
- まず、配列が保持する要素の数を 3 に設定します。つまり、角括弧内では、配列が 3 つの要素を保持することを示しています。
- 次に、配列の各要素に値を代入します。これは、変数名と配列内のインデックス位置を指定することで行えます。したがって、values[0]は、配列の最初の位置に値を格納することを意味します。同様に、2番目の位置にアクセスするには、values[1]という表記を使用し、以降も同様です。
お願い: – 配列では、インデックス位置は 0 から始まります。
ステップ3) 次に、配列の個々の要素をコンソールに表示してみましょう。 これを実現するために、以下のコードを追加しましょう。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code 説明:-
これは、 Console.WriteLine メソッドを使用して要素の各値をコンソールに送信するだけの単純な部分です。
繰り返しますが、配列変数名とインデックス位置を使用して各要素にアクセスしていることに注意してください。
上記のコードを正しく入力してプログラムを実行すると、次の出力が表示されます。
出力:
出力から、コンソールに表示されている配列のすべての値を確認できます。
foreach を使用して C# 配列をループ処理する方法
各要素をインデックスで読み込む方法は有効ですが、配列に多くの値が含まれている場合は面倒になります。foreach ループは、配列のすべての要素を順番に処理するより簡潔な方法を提供します。 tracインデックス変数を自分で定義してください。
foreach文は、配列から要素を一つずつ取り出し、ループ変数にコピーします。そして、その変数をループ本体内で使用します。ループは最後の要素で自動的に停止するため、foreachを使うことで配列の末尾を超えて読み込んでしまうリスクを回避できます。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
上記の例では、3 つの整数の配列を宣言して初期化し、foreach を使用してそれを走査します。各パスで変数は 項目 次の値を受け取り、Console.WriteLine でそれを出力します。出力は、1、2、3 という数字がそれぞれ別の行に表示されます。
配列を使ったforeachループに関する重要なポイント:
- ループ変数は読み取り専用なので、foreach は値を変更するよりも、値を読み取る場合に最適です。
- 要素を変更するには、ping代わりにインデックス付きのforループを使用してください。
- foreachは、一次元配列、多次元配列、および反復処理をサポートするあらゆるコレクションで機能します。
C# 多次元配列
これまで紹介した配列は一次元配列であり、単純な値のリストを格納します。C# は多次元配列もサポートしており、要素を行と列のグリッド状に配置します。二次元配列は最も一般的な形式で、行列、ゲーム盤、表などのデータに適しています。
2次元配列は、角括弧の中にカンマを入れることで宣言します。カンマを追加するごとに次元が1つ増えるため、int[,]は2次元配列、int[,,]は3次元配列になります。要素には、次元ごとに1つのインデックスでアクセスできます。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
ここで、配列matrixは2行2列です。要素matrix[0, 0]は1を返し、matrix[1, 1]は4を返します。次元数は配列宣言時に固定され、各次元のサイズは配列作成時に設定されます。
C# のギザギザ配列
ジャグ配列とは、要素自体が配列である配列のことです。長方形の多次元配列とは異なり、各内部配列の長さは異なるため、ジャグ配列はしばしば「配列の配列」と呼ばれます。この柔軟性により、行ごとに異なる数の値を保持できる場合に便利です。
ジャグ配列は、2組の角括弧で宣言し、各内部配列を個別に作成します。次の例では、最初の行に3つの値、2番目の行に2つの値が格納されるジャグ配列を作成します。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
式 jagged[0][2] は、1 行目の 3 番目の要素である 3 を読み取り、jagged[1][1] は 2 行目の 2 番目の要素である 5 を読み取ります。各行が独立した配列であるため、行の長さが変化する場合でも、ジャグ配列はメモリを効率的に使用できますが、内部配列を初期化するための追加の手順が必要です。





