はじめに
List多次元配列の値追加と出力について解説します。
ここでは例として2次元Listを採用しています。
Listではなく配列型の多次元配列は以下を参照
前提知識
Listの基本操作 gaishiengineer.hatenablog.com 使用するのは、AddメソッドとCountプロパティです。 Addメソッド
〇〇.Add(T item);//末尾に要素itemを追加
Countプロパティ
〇〇.Count;//末尾に要素数を取得 returnされる値はint
2次元リストの型
Tは任意の要素つまりstringやintなど
List<List<T>> dataList = new List<List<T>>();
例:2次元リストの宣言と共に初期化し、格納された値を出力する
メリット:すでに追加したい値が決まっている場合初期化が楽になる
//値を追加するために2次元配列List var dataList = new List<List<string>>(){ new List<string>() {"1-A","1-B","1-C","1-D"}, // 1行目のList new List<string>() {"2-A","2-B","2-C","2-D","2-E"}, // 2行目のList } //値の出力 for (int i = 0; i < dataList.Count; i++) { for (int j = 0; j < dataList[i].Count; j++) { Console.WriteLine(dataList[i][j]); } }
//出力結果
1-A 1-B 1-C 1-D 2-A 2-B 2-C 2-D 2-E
例:初期化をせずに2次元リストに値を追加し出力する
メリット:追加したい値が定まってなかったり他のクラスから値を持ってくる場合に有用である。
ここではひとまず追加したい値を同じクラス内で作成しAddで2次元リストに追加する。
//2次元リストListの宣言 List<List<string>> dataList = new List<List<string>>(); //2つの1次元配列 Excelを想定し値は"行-列"を意味する List<string> values_1 = new List<string>{"1-A","1-B","1-C","1-D"}; List<string> values_2 = new List<string>{ "2-A","2-B","2-C","2-D","2-E" }; //2次元配列List=dataListに1次元配列values_1を追加する dataList.Add(values_1); //値の出力 for (int i = 0; i < dataList.Count; i++) { for (int j = 0; j < dataList[i].Count; j++) { Console.WriteLine(dataList[i][j]); } } Console.WriteLine("------------"); //dataListにもう片方の1次元配列values_2追加する dataList.Add(values_2); //全ての値の出力 for (int i = 0; i < dataList.Count; i++) { for (int j = 0; j < dataList[i].Count; j++) { Console.WriteLine(dataList[i][j]); } }
出力結果
解説
■2次元配列Listの宣言
List<List
Listの要素型には、任意の型が指定可能。List<List
■値の追加
値の追加はAddメソッドを用いる。
■値の出力
多次元配列の出力はforeachとforの二つがあるがここではExcel使用を考えて要素の指定が可能なforを用いる。 要素数の取得はCountを用いる
3次元以上のList
入れ子を増やす
var dataList = new List<List<List<T>>>();
参考文献
https://smdn.jp/programming/dotnet-samplecodes/collections/3a735f8a024111eb907175842ffbe222/