今日はC#の配列について解説していきます。
配列とは
配列というのは複数のデータを1つにまとめて扱うためのものです。
例えば、複数の数値を入力して和を求めるといった場合に「配列」の概念が必要になります。
配列を使ってみよう
配列を使う前に、もし配列を使わなかった事例を見ていきましょう。
配列を使わないコード
複数データを1つにまとめなかった場合を見ていきましょう。例として、1~5までの連続した数値の総和を求める計算をしていきます。
サンプルコード
using System;
namespace ArrayTest
{
class Program
{
static void Main(string[] args)
{
int a, b, c, d, e; // 変数を複数用意
// 値の入力
a = 1;
b = 2;
c = 3;
d = 4;
e = 5;
// 値の計算
int sum = a + b + c + d + e;
// 値の出力
Console.Write("和は {0} です。", sum);
}
}
}
実行結果
和は 15 です。
配列を使ったコード
次に、配列を使った場合を見ていきましょう。
配列は型名[] 変数名
を付けることで定義することができます。ただ、宣言しただけでは使うことができないので実体を作らねばいけません。
実体を作る場合はnew
を付けて、配列型変数 = new 型名[配列の長さ];
としてあげます。
サンプルコード
using System;
namespace ArrayTest
{
class Program
{
static void Main(string[] args)
{
int[] a = new int[5]; // 長さが5の整数型配列を用意
// 値の入力
for (int i = 0; i < a.Length; ++i) // a.Length は配列 a の長さ。これの例では5。
{
a[i] = 1 + i;
}
// 値の計算
int sum = 0;
for (int i = 0; i < a.Length; ++i)
{
sum += a[i];
}
// 値の出力
Console.Write("和は {0} です。", sum);
}
}
}
実行結果
和は 15 です。
変数はaしか使っていないのに複数データを扱えるようになりました。さらにfor文を使うことで無駄な処理を省くことができコードがスッキリしましたね。
配列を宣言時に初期化してみる
配列に入れるデータが固定している場合は、以下のように宣言時に初期化しておくこともできます。
型名[] 変数名 = new 型名[] {値1, 値2, …..};
例えば、1, 2, 3, 4, 5というデータを入れたいときはこのようになります。
int[] a = new int[] {1, 2, 3, 4, 5};
ちなみに、宣言時に限り以下のような書き方も可能です。new 型名[]
を省略できます。
int[] a = {1, 2, 3, 4, 5};
多次元配列を扱ってみる
今まで事例として挙げたのは1次元配列になります。要は1次元的に並んだデータを扱ってきました。
C#では多次元配列と呼ばれる多次元データも扱うものもあります。
多次元配列を使ったコード
サンプルコード
using System;
namespace ArrayTest
{
class Program
{
static void Main(string[] args)
{
double[,] a = new double[5, 10]; // 5行10列の行列
Console.WriteLine("aの行数は {0} です。", a.GetLength(0));
Console.WriteLine("aの列数は {0} です。", a.GetLength(1));
}
}
}
実行結果
aの行数は 5 です。
aの列数は 10 です。
多次元配列の場合は配列の行列数を以下のように指定することで箱を用意できます。
型名[,] 変数名 = new 型名[,];
コメント