C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#入門】2次元配列を1次元配列に変換する方法をわかりやすく解説

C#で2次元配列を1次元配列に変換するには?

プログラミングでは、2次元配列のデータを1次元配列として扱いたい場面がよくあります。C#では、ネストしたforループカウンタ変数を組み合わせることで、2次元配列の全要素を1次元配列へ簡単にコピーできます。本記事では、その具体的な手順とサンプルコードを解説します。

手順1:2次元配列と1次元配列を宣言する

まず、変換元となる2次元配列と、変換先となる1次元配列を用意します。

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

ここでのポイントは、1次元配列のサイズを「行数 × 列数」で指定することです。この例では 2 × 2 = 4 となるため、要素数4の配列を宣言しています。

手順2:ループで要素を順番にコピーする

続いて、二重のforループを使って、2次元配列の各要素を先頭から順に1次元配列へ格納していきます。

for (i = 0; i < 2; i++) {
    for (j = 0; j < 2; j++) {
        b[k++] = a[i, j];
    }
}

b[k++] と書くことで、代入後にカウンタ変数 k が自動的にインクリメントされ、コードを簡潔に保てます。

完全なサンプルコード

以下は、C#で2次元配列を1次元配列に変換する完全なコード例です。

Example

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Program {
    class twodmatrix {

        static void Main(string[] args) {
        int[] a = new int[2, 2] {
            {
                1,
                2
            },{
                3,
                4
             }
        };

        int i, j;
        int[] b = new int[4];
        int k = 0;

        Console.WriteLine("Two-Dimensional Array...");
        for (i = 0; i < 2; i++) {

            for (j = 0; j < 2; j++) {
                Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i, j]);
            }
        }

        Console.WriteLine("One-Dimensional Array...");
        for (i = 0; i < 2; i++) {
            for (j = 0; j < 2; j++) {
                b[k++] = a[i, j];
            }
        }  

        for (i = 0; i < 2 * 2; i++) {
            Console.WriteLine("{0}\t", b[i]);
        }
        Console.ReadKey();
        }
    }
}

実行結果

Two-Dimensional Array...
a[0,0] = 1
a[0,1] = 2
a[1,0] = 3
a[1,1] = 4
One-Dimensional Array...
1
2
3
4

ポイント解説

  • 行優先(Row-major)の順序で格納される:外側のループが行、内側のループが列を担当するため、要素は「1 → 2 → 3 → 4」の順に1次元配列へコピーされます。
  • カウンタ変数で簡潔に書けるb[k++] のように後置インクリメントを使えば、代入とインデックス更新を1行で処理できます。
  • 応用しやすい構造:配列サイズを a.GetLength(0)a.GetLength(1) で取得すれば、任意のサイズの2次元配列にも同じロジックを適用できます。
  1. JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説

    JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co

  2. 【Android】配列をArrayListに変換する方法をサンプルコード付きで解説

    このチュートリアルでは、Androidアプリ開発において配列(Array)をArrayListに変換する方法を、実際のサンプルコードとともにわかりやすく解説します。 配列からArrayListへの変換の基本 Javaでは、Arrays.asList()メソッドを使うことで、配列をリスト形式に変換できます。さらに、その結果をArrayListのコンストラクタに渡すことで、要素の追加や削除が自由に行える本格的なArrayListとして扱えます。 String[] array = new String[]{ANDROID, JSP, JAVA, STRUTS, HADOOP, JSF}; Arra