Home [C# 筆記] ArrayList 集合
Post
Cancel

[C# 筆記] ArrayList 集合

ArrayList 集合

集合:很多數據的一個集合

1
ArrayList list = new ArrayList(); //創建集合物件

array:長度不可變,類型單一
(若要改長度,可用 Array.Resize()方法來變更其陣列大小 )

ArrayList集合的好處:長度可以任意改變,類型隨便

範例:ArrayList集合加入不同的類型的元素、集合,並輸出

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
using System.Collections;

//創建集合物件
ArrayList list = new ArrayList();
//集合的好處:長度可以任意改變,類型隨便
list.Add(2);
list.Add("aaa");
list.Add(true);
list.Add("張三");
list.Add(new int[] { 1, 2, 3, 4, 5 });
list.Add(new Person());
list.Add(list);

for (int i = 0; i < list.Count; i++)
{
    //把一個物件輸出到控制台,默認情況下,輸的就是這個物件的命名空間
    if (list[i] is Person) //判斷是否可以轉型
    { 
        ((Person)list[i]).SayHello(); //強制轉型
    } else if (list[i] is int[])  //使用AddRange添加集合,就不用轉型
    {
        for (int j = 0; j < ((int[])list[i]).Length; j++) {
            Console.WriteLine(((int[])list[i])[j]);
        }
    } else {
        Console.WriteLine(list[i]);
    }
}
Console.ReadKey();

class Person {
    public void SayHello() {
        Console.WriteLine("Hello");
    }
}

把一個物件輸出到控制台,默認情況下,輸的就是這個物件的命名空間

範例:使用AddRange 添加集合並輸出

使用AddRange添加集合,輸出就不用轉型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Collections;

//建立ArrayList集合物件
ArrayList list = new ArrayList();

//加入單個元素
list.Add(2);
list.Add("aaa");
list.Add(true);
list.Add("張三");
//加入集合元素(使用AddRange)
list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });
list.AddRange(list);

//輸出看結果
for (int i = 0; i < list.Count; i++) {
    Console.WriteLine(list[i]);
}

.Clear(); 清空所有的元素

1
list.Clear(); //清空所有的元素

其他方法

1
2
3
4
5
6
7
8
list.Remove(true); //刪除某個元素,寫誰就刪誰
list.RemoveAt(0); //依據index去刪除元素
list.RemoveRange(0, 3);//依據index去移除一定範圍的元素
list.Sort(); //升序排序元
list.Reverse(); //反轉
list.Reverse(); //反轉
list.Insert(0, "好"); //依據index插入元素
list.InsertRange(0, new string[] { "AAA", "BBB", "CCC" }); //在指定的位置插入一個集合  

list.Contains() 判斷是否包含某個元素
if(list.Contains(2)) {...}

1
2
3
4
//集合中不包含"李四",就在第一個位置添加"李四"
if (!list.Contains("李四")) {
    list.Add("李四");
}
This post is licensed under CC BY 4.0 by the author.