はじめに
先日業務にて表題の件について調べたので共有します。
どうやら
C# で多次元リストを宣言するための組み込みメソッドはありません。
だそうです。
本題
ジェネリックコレクションの List クラスを多重入れ子(今回は二重)にすることで実現できます。
List<List<T>>
※ T は任意のデータ型
作成する二次元リスト
Id[0]
Id[1]
Id[2]
IdList[0]
0
5
10
IdList[1]
1
6
11
IdList[2]
2
7
12
IdList[3]
3
8
13
IdList[4]
4
9
14
利用例
qiita.cs
List<List<int>> IdList = new List<List<int>>();
// 二次元リスト作成
for(int i=0; i<5; i++)
{
List<int> Id = new List<int>();
Id.Add(i);
Id.Add(i+5);
Id.Add(i+10);
IdList.Add(ID);
}
// 値の参照
foreach(var ids in IdList)
{
if(ids[0] % 2 == 0)
{
Console.Write(ids[1]);
}
else
{
Console.Write(ids[2]);
}
Console.WriteLine();
}
ちなみに
クラスやタプルのリストでも実現できるみたいです。
クラス
qiita.cs
public class Id
{
public int oldId { get; set; }
public int newId { get; set; }
}
List<Id> IdList = new List<Id>();
for(int i=0; i<5; i++)
{
Id id = new IdList();
id.oldId = i;
id.newId = i+5;
IdList.Add(id);
}
タプル
qiita.cs
List<(int, int)> IdList = new List<(int, int)>();
for(int i=0; i<5; i++)
{
IdList.Add((i, i+5));
}
さいごに
初投稿がニッチな内容となってしまいましたが、アウトプットの習慣づけをしたいと思い投稿しました。
今後もアウトプットの習慣づけ兼備忘録の場として利用していくので、優しく見守っていただけたら嬉しいです。
最後までお読みいただきありがとうございました。
また逢う日まで。
参考文献
↧