[C#]二次元配列を一括で初期化!二次元リスト(List)についても

[C#]二次元配列を一括で初期化!二次元リスト(List)についてもC#
スポンサーリンク

C#において二次元配列や二次元リスト(List)を一括で初期化する方法はプログラミングにおいてよく使用されます。

この記事では初心者向けに簡潔に解説し例を交えながら、

C#における二次元配列と二次元リストの一括初期化方法を学びましょう。

広告

配列の初期化

まずは通常の配列の初期化についておさらいします。

// 配列の要素数を指定して初期化 
int[] numbers =newint[5];

上記の例配列 numbersはint型の要素数5で初期化しています。

各要素は型に応じてデフォルトの初期値で初期化されるので今回は0で初期化されます。

二次元配列を特定の値で一括で初期化

初期化リストを使用して二次元配列を一括で初期化することができます。

int[,] matrix = new int[,]{{ 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 }};

System.Console.WriteLine(matrix[1,1]);//結果:5

// 10x10の2次元配列を0で初期化 
int[,] matrix2=newint[10,10];

System.Console.WriteLine(matrix2[1,1]);//結果:0

// 3x3の2次元配列を特定の値(例: 42)で初期化 
int[,] matrixCustomValue = Enumerable.Range(0,3).Select(i => Enumerable.Repeat(42,3).ToArray()).ToArray();

上記の例では、初期化リスト内に各行の要素を指定しmatrixという名前の2次元配列を初期化しています。

また通常の配列同様に要素数を指定して初期化することも可能です。

ガマくん
ガマくん

配列の要素数が未定の場合は型の使い分けで対応できるよ

[C#]配列要素数未定の場合はLIST型!宣言や使い分けなどの違いについて
C#プログラミングを学ぶ上で配列の取り扱いは基本中の基本です。今回は「C#配列要素数未定の場合はLISTで対応!」に焦点を当て宣言や使い分けについて解説していきます。
広告

Initializeにて2次元配列を一括で初期化

Array.Initialize()メソッドを使用して指定した値で二次元配列を初期化することができます。

int[,] matrix = new int[3, 3];
Array.Initialize(matrix, 0);

Array.Initialize()メソッドを使用して各要素を指定した値で初期化しています(この例では0で初期化しています)

これらの方法を使用して二次元配列を一括で初期化することができます。

C#におけるListの2次元配列を一括で初期化する方法には、以下のようなアプローチがあります。

2次元リストを一括で初期化する

Listの2次元配列を初期化リストを使って一括で初期化することができます。

List<List> matrix = new List<List>{new List { 1, 2, 3 },new List { 4, 5, 6 },new List { 7, 8, 9 }};

// 2次元リストを特定の値(例: 0)で初期化 
List<List<int>> matrixCustomValue = Enumerable.Range(0,3) .Select(i => Enumerable.Repeat(0,3).ToList()).ToList();

上記の例では、matrixというList型の2次元配列の初期化しましたが

Enumerable.Repeatを利用することにより、複数の初期化が可能になります。

広告

2次元Listを多重ループで初期化する

ネストされたループを使用して、Listの2次元配列を一括で初期化することもできます。

List<List> matrix = new List<List>();
int numRows = 3;
int numCols = 3;

for (int i = 0; i < numRows; i++)
{
 List row = new List();

 for (int j = 0; j < numCols; j++)
 {
  row.Add(i * numCols + j + 1);
 }

 matrix.Add(row);
}

------------------------------------------------------------------------------------------

// 2次元リストを特定の値(例: 10)で初期化
 List<List> matrix = new List<List>();
 for (int i = 0; i < 3; i++)
 {
   List row = new List();
      for (int j = 0; j < 3; j++)
       {
         row.Add(10);
       }
   matrix.Add(row);
 }

上記の例では、matrixという名前のListの2次元配列を初期化しています。

外側のループで行を作成し内側のループで各行の要素を追加しています。

これらの方法を使用してListの2次元配列を一括で初期化することができます。

多次元配列を一括初期化する

2次元配列同様に以下のように初期化できます。

// 10x10x10の3次元配列を0で初期化 
int[,,] matrix=newint[10,10,10];

System.Console.WriteLine(matrix[1,1,1]);//結果:0

//スマートではないがForループでの初期化
// 3次元配列を特定の値(例: 42)で初期化
int[,,] cubeCustomValue = new int[3, 3, 3];
for (int i = 0; i < cubeCustomValue.GetLength(0); i++)
{
    for (int j = 0; j < cubeCustomValue.GetLength(1); j++)
    {
        for (int k = 0; k < cubeCustomValue.GetLength(2); k++)
        {
            cubeCustomValue[i, j, k] = 42;
        }
    }
}

上記の例ではmatrixという名前の2次元配列を初期化しています。

matrixでは各行の要素を中括弧で囲みカンマで区切って指定しています。

広告

まとめ

C#において二次元配列や二次元リスト(List)を一括で初期化する方法は複数あります。

静的な初期化やnew演算子を使った初期化リスト初期化子を使用する方法など状況に応じて適切な方法を選びましょう。

初心者の方もぜひこれらのパターンを覚えて、柔軟に二次元データを扱えるようになりましょう。

スポンサーリンク

プログラミングを本気で学び転職を考えている方へ

プログラミングは専門性が手に職が付く仕事です。

ある程度学習に時間をかけることも大切ですが、スピード間も重要で壁にぶつかったときにに助けてもらえる環境があるかどうかでほかの人との差が大きく生まれます。

まずは、無料でオンラインスクールの体験レッスンや無料相談に参加しましょう。

未経験から挑戦するなら「忍者CODE」

忍者CODEでは「未経験からプロを目指せるスクール」とだけあって、転職サポートはもちろんですがエンジニアとして個人で活躍できる案件保証がついたコースもあります。また学生や独学で学んでいる方向けに基礎から学べるコースもあり、未経験から始めやすいプログラミングスクール【忍者CODE】となってます。

忍者CODEでは無料でWeb制作やプログラミングを体験をすることができるので、気になっている方はまずは体験してから考えてみてはいかがでしょうか。

転職を視野に入れて挑戦するなら「WEBCAMP」

WEBCAMPは忍者CODEに比べて学習から転職までのカリキュラムがしっかり組まれており、転職保証や返金保証もあるスクールです。転職を視野にいれて学んでいきたいと考えている方は【DMM WEBCAMP】がおすすめです。

WEBCAMPでも無料でカウンセリングを受けることができるので、一度学習言語についてやスケジュール感について聞いてみてはいかがでしょうか。

C#
ガマくんをフォローする
広告
塩竈Code
タイトルとURLをコピーしました