首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 集合教學(一):ArrayList 動態陣列、裝箱拆箱與轉換技巧(八)

     編輯:關於C語言

ArrayList 優缺點

  • 優點:動態擴容、支援區間增刪、不限資料型別。
  • 缺點:所有元素視為 object,存取時需拆箱/裝箱,效能較差。

裝箱與拆箱

ArrayList list = new ArrayList();
list.Add(123);      // 裝箱:int → object
list.Add("123");    // 字串本為參考類型,無裝箱

int val = (int)list[0]; // 拆箱:object → int

大量操作值類型會造成效能負擔,C# 2.0 引入泛型 List<T> 解決此問題。

陣列與 ArrayList 互轉

// 陣列 → ArrayList
int[] arr = {1,2};
ArrayList list = ArrayList.Adapter(arr); // 包裝,非複製

// ArrayList → 陣列 (需同質型別)
ArrayList list = new ArrayList() { "W", "h", "y" };
string[] arr = (string[])list.ToArray(typeof(string));

樂透號碼產生器範例

ArrayList al = new ArrayList();
Random rd = new Random();
do
{
    int n = rd.Next(1, 36);
    if (!al.Contains(n)) al.Add(n);
} while (al.Count < 7);
al.Sort();
foreach (object n in al) Console.WriteLine(n);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved