C#のジャグ配列(配列の配列)の宣言と初期化方法を解説
C#において「配列の配列」はジャグ配列(Jagged Array)と呼ばれます。ジャグ配列は、int[][] のように角括弧を2つ重ねて宣言します。各要素が独立した配列を持つため、内側の配列ごとに異なる長さを持たせられるのが特徴です。
ジャグ配列の宣言
まず、ジャグ配列を宣言する方法を見てみましょう。
int[][] marks;
ジャグ配列の初期化
次に、5つの整数型配列を要素として持つジャグ配列を初期化します。
int[][] marks = new int[][]{new int[]{ 90,95 },new int[]{ 89,94 }, new int[]{ 78,87 },new int[]{ 76, 68 }, new int[]{ 98, 91 } };この例では、それぞれ長さ2の整数配列が5つ格納されています。なお、ジャグ配列では各内側の配列の長さを自由に変えられるため、たとえば new int[]{90} や new int[]{80, 85, 88} のように異なるサイズを混在させることも可能です。
サンプルコード
C#でジャグ配列を実装する完全なサンプルコードを以下に示します。二重のforループを使って、すべての要素にアクセスして表示しています。
using System;
namespace MyApplication {
class MyDemoClass {
static void Main(string[] args) {
int i, j;
/* 整数配列を5つ持つジャグ配列 */
int[][] marks = new int[][]{new int[]{90,95},new int[]{89,94}, new int[]{78,87},new int[]{ 76, 68 },
new int[]{ 98, 91}};
for (i = 0; i < 5; i++) {
for (j = 0; j < 2; j++) {
Console.WriteLine("marks[{0}][{1}] = {2}", i, j, marks[i][j]);
}
}
Console.ReadKey();
}
}
}実行結果
上記プログラムを実行すると、以下のように各要素が出力されます。
marks[0][0] = 90 marks[0][1] = 95 marks[1][0] = 89 marks[1][1] = 94 marks[2][0] = 78 marks[2][1] = 87 marks[3][0] = 76 marks[3][1] = 68 marks[4][0] = 98 marks[4][1] = 91
まとめ
ジャグ配列は、配列名[行][列] の形式で個々の要素にアクセスできます。多次元配列(int[])と似ていますが、ジャグ配列は「配列の中に配列が入っている」構造であり、各行の長さを柔軟に設定できる点が大きな違いです。成績データや可変長のデータセットを扱う際に便利なので、ぜひ活用してみてください。
-
C#で対数(Log)関数を使う方法
C#では、Mathクラスに用意されたメソッドを使うことで、対数(ログ)を簡単に計算できます。自然対数(底e)だけでなく、常用対数(底10)や任意の底を持つ対数も求められます。主な対数メソッド一覧番号メソッドと説明1Log(Double)指定した数値の自然対数(底e)を返します。2Log(Double, Double)指定した数値の、指定した底における対数を返します。3Log10(Double)指定した数値の常用対数(底10)を返します。それでは、C#で対数関数を使用する具体的な例を見てみましょう。サンプルコードusing System; class Demo { static voi
-
C#で2つの配列の共通要素(積集合)を取得する方法【Intersectメソッド】
C#で2つの配列の共通要素(交差・積集合)を取得するには、Intersectメソッドを使用します。このメソッドは、System.Linq名前空間に用意されている拡張メソッドで、LINQを使った配列操作の中でも特に便利な機能の一つです。 Intersectメソッドは、2つの配列を比較し、両方に存在する共通の要素だけを返します。重複する要素は自動的に除外され、結果は一意な値のコレクションとして取得できます。 配列の準備 まず、比較対象となる2つの整数型の配列を定義します。 int[] arr1 = { 44, 76, 98, 34 }; int[] arr2 = { 24, 98, 44, 55,