C#で多次元アレイを印刷する
の中に 前の投稿、C#で1次元アレイを印刷する方法を見てきました。この投稿では、C#で多次元アレイを印刷する方法について説明します。
1.使用する foreach
ループ
The foreachステートメント 多次元アレイの要素を反復処理するためのシンプルでクリーンな方法を提供します。次の例は、C#で多次元アレイを印刷するためのforeachステートメントの使用法を示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { int[,] array = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; foreach (int i in array) { Console.Write("{0} ", i); } } } /* 出力: 1 2 3 4 5 6 */ |
ただし、多次元アレイでは、ネストされたforループを使用すると、アレイ要素を処理する順序をより細かく制御できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System; public class Example { public static void Main() { int[,] array = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; for (int i = 0; i < array.GetLength(0); i++) { for (int j = 0; j < array.GetLength(1); j++) { Console.Write("{0} ", array[i, j]); } Console.WriteLine(); } } } /* 出力: 1 2 3 4 5 6 */ |
2.使用する String.Join()
方法
別の良い代替手段は、 String.Join() メソッド。指定された区切り文字を使用して、指定されたアレイの要素を連結します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System; using System.Linq; public class Example { public static void Main() { int[,] array2D = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; Console.WriteLine(String.Join(" ", array2D.Cast<int>())); } } /* 出力: 1 2 3 4 5 6 */ |
3.使用する List.ForEach()
方法
別のアプローチは、 ToList()
多次元アレイを一般的な`List<T>`に変換し、Listを呼び出すメソッド ForEach() リストの各要素を印刷するメソッド。このアプローチには、中間ステップとしてリストを作成することが含まれることに注意してください。これはお勧めしません。
多次元アレイの場合、以下に示すように、ソースシーケンス要素を指定されたタイプにキャストできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System; using System.Linq; using System.Collections.Generic; public class Example { public static void Main() { int[,] array = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; List<int> nums = array.Cast<int>().ToList(); nums.ForEach(Console.WriteLine); } } /* 出力: 1 2 3 4 5 6 */ |
これで、C#で多次元アレイを印刷できます。