ArrayList:非泛型,元素為 `object`,需裝箱/拆箱,不建議新專案使用List<T>:泛型,型別安全、無裝箱、效能優,首選兩者實作介面:`IList`、`ICollection`、`IEnumerable` 等。
// ArrayList
var list = new ArrayList();
list.Add("張三");
list.Insert(1, "李四");
string name = list[0].ToString();
list.RemoveAt(1);
int idx = list.IndexOf("張三");
list.Sort();
// List (泛型)
var nums = new List { 1, 7, 3, 9, 6, 10 };
nums.Sort();
foreach (var n in nums) Console.Write(n + " "); // 1 3 6 7 9 10
nums.Remove(10); // 移除值為 10 的元素
| 方法 | 說明 |
|---|---|
Add/AddRange | 尾端加入單一/多個元素 |
Insert/InsertRange | 指定索引插入 |
Remove/RemoveAt/RemoveAll | 移除元素 |
Find/FindAll/FindIndex | 條件搜尋 (泛型專用) |
Sort | 排序 (多種多載) |
BinarySearch | 二分搜尋 (需已排序) |
ConvertAll | 型別轉換投影 |
AsReadOnly | 取得唯讀包裝 |
清單演法法詳細解析:列表算法 (原文連結)