2020年09月24日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 1720 count

【入門級】2次元配列と配列の配列(ジャグ配列)は似ているが違う

Written By: 川俣 晶連絡先

似て非なる配列 §

 2次元配列は添え字を2つ付ける配列です。(例: array1[1, 2])

 配列の配列は添え字を2つ付ける配列です。(例: array2[1][2])

 区切り文字が違うだけで、とても似ています。

 しかし、この2つは全くの別物です。

 混同しないように注意しましょう。

 具体的に何が違うのでしょう。

 2次元配列は縦横に広がった一つのオブジェクトです。オブジェクトの数は1つです。

 配列の配列は配列というオブジェクトを多数収容したオブジェクトです。オブジェクトの数は多数です。

 ですから、new演算子を使う回数が全く違います。

 サンプルソースで確認してみましょう。

罠の数々 §

  • 配列の配列は2番目の添え字の上限を変化できる。new int[][] { new int[2], new int[3], new int[5] }のように書けば良い。しかし、2次元配列は上限を変更できない。両者の違いが初期化だけでは無いのだ

参考リンク §

多次元配列 (C# プログラミング ガイド)

ジャグ配列 (C# プログラミング ガイド)

 2次元配列の話題は多次元配列の説明に含まれること。配列の配列はジャグ配列と呼ばれていることを上記リンクから確かめてみよう。

 ジャグ配列と多次元配列を混在させる方法も上記リンクに含まれる。実際に見て、どんな世界が広がっているのか見てみよう。

リポジトリ §

https://github.com/autumn009/cshowto

Array §

using System;

class Program

{

    static void Main()

    {

        // 2次元配列

        int[,] array1 = new int[3, 3];

        array1[1, 2] = 123;

        Console.WriteLine($"array1[1, 2] = {array1[1, 2]}");

        // 配列の配列

        int[][] array2 = new int[][] { new int[3], new int[3], new int[3] };

        array2[1][2] = 123;

        Console.WriteLine($"array2[1][2] = {array2[1][2]}");

    }

}

実行結果

array1[1, 2] = 123

array2[1][2] = 123

Facebook

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
09月
25日
【入門級】配列を複製する4つの方法
3days 0 count
total 918 count
【C# コーディング How To】の前のコンテンツ
2020年
09月
23日
【入門級】文字列配列からファイルのパスを生成
3days 0 count
total 1040 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20200924090444
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.