C# 使用 List 達成多維不特定長度的陣列效果

C# 在使用時 array 時,要先宣告陣列大小。
若一開始不確定陣列大小,
想要使用時再動態增加大小,可以使用 List 來達成此效果

例如:
List<string> my1d; // 1維:List 裡面放不確定數量的 stirng
List<List<string>> my2d;// 2維:List 裡面放不確定數量的 List<string>

範例:以 List 做成類似 3維陣列,但每一維度,底下元素個數不固定

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
希望達成此效果
Array (
    0 => Array(
            0 => Array("A1", "A2", "A3", "A4"),
            1 => Array("B1", "B2", "B3")
        ),
    1 => Array(
            0 => Array("C1", "C2")
        )
);
*/
List<List<List<string>>> my3d = new List<List<List<string>>>();
List<string> my1d;
List<List<string>> my2d;
//
my2d = new List<List<string>>();
my1d = new List<string>();
my1d.Add("A1");
my1d.Add("A2");
my1d.Add("A3");
my1d.Add("A4");
my2d.Add(my1d);
my1d = new List<string>();
my1d.Add("B1");
my1d.Add("B2");
my1d.Add("B3");
my2d.Add(my1d);
my3d.Add(my2d);
//
my2d = new List<List<string>>();
my1d = new List<string>();
my1d.Add("C1");
my1d.Add("C2");
my2d.Add(my1d);
my3d.Add(my2d);
Console.WriteLine("my3d[0][0][2] = " + my3d[0][0][2]); // my3d[0][0][2] = A3
Console.WriteLine("my3d[0][1][0] = " + my3d[0][1][0]); // my3d[0][1][0] = B1
Console.WriteLine("my3d[1][0][1] = " + my3d[1][0][1]); // my3d[1][0][1] = C2
Console.WriteLine("my3d.Count = " + my3d.Count); // my3d.Count = 2
Console.WriteLine("my3d[0].Count = " + my3d[0].Count); // my3d[0].Count = 2
Console.WriteLine("my3d[1].Count = " + my3d[1].Count); // my3d[1].Count = 1
Console.WriteLine("my3d[0][0].Count = " + my3d[0][0].Count); // my3d[0][0].Count = 4
Console.WriteLine("my3d[0][1].Count = " + my3d[0][1].Count); // my3d[0][1].Count = 3
Console.WriteLine("my3d[1][0].Count = " + my3d[1][0].Count); // my3d[1][0].Count = 2

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *