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

C# Array 靜態陣列與 ArrayList 動態陣列基礎操作入門

     編輯:關於C#

陣列是程式設計中最基礎的資料結構。C# 提供固定大小的強型別 Array 與動態擴容的非泛型 ArrayList。本文從兩者的核心方法入手,建立陣列操作的直觀認知。

一、Array 靜態方法實戰

排序與二分搜尋

int[] nums = { 5, 4, 6, 3, 14, 9, 8, 17, 1, 24, -1, 0 };
Console.Write("排序前: "); nums.ToList().ForEach(i => Console.Write(i + " "));

int idxBefore = Array.IndexOf(nums, 14); // 線性搜尋索引
Console.WriteLine($"\n14 排序前索引: {idxBefore}"); // 4

Array.Sort(nums); // 就地排序
Console.Write("排序後: "); nums.ToList().ForEach(i => Console.Write(i + " "));
// -1 0 1 3 4 5 6 8 9 14 17 24

int idxAfter = Array.BinarySearch(nums, 14); // 二分搜尋(需已排序)
Console.WriteLine($"\n14 排序後索引: {idxAfter}"); // 9

類型轉換與委派遍歷

string[] strArr = { "75.3", "25.999", "105.25" };
double[] dblArr = Array.ConvertAll(strArr, Convert.ToDouble); // 字串轉 double

Array.ForEach(dblArr, x => Console.Write(x + " ")); // 委派遍歷
// 輸出: 75.3 25.999 105.25

Array.ConvertAll 與 Array.ForEach 是函數式風格的靜態工具方法,簡化陣列轉換與遍歷代碼。

二、ArrayList 動態陣列基礎

建構與增刪改

ArrayList al = new ArrayList();
Console.WriteLine("初始數量: " + al.Count); // 0

al.Add('C'); al.Add('A'); al.Add('E');
al.Add('B'); al.Add('D'); al.Add('F');
Console.WriteLine("新增 6 個後: " + al.Count); // 6

al.Remove('A'); // 移除值
Console.WriteLine("移除 A 後: " + al.Count); // 5

al.Add('a'); // 新增
Console.WriteLine("新增 a 後: " + al.Count); // 6

al[0] = 'X'; al[1] = 'Y'; al[2] = 'Z'; // 索引器修改

數值型 ArrayList 排序與搜尋

ArrayList numList = new ArrayList { 155, 413, -41, 818, 31, 191 };
Console.Write("原始: "); numList.Cast().ToList().ForEach(i => Console.Write(i + " "));

numList.Sort(); // 實例方法排序
Console.Write("\n排序後: "); numList.Cast().ToList().ForEach(i => Console.Write(i + " "));
// -41 31 155 191 413 818

int pos = numList.BinarySearch(413); // 實例方法二分搜尋
Console.WriteLine($"\n413 索引: {pos}"); // 4

三、核心差異速查

操作Array (靜態)ArrayList (動態)
建立new int[10] 或 {1,2,3}new ArrayList()
大小固定自動擴容
新增元素不支援Add(), Insert()
移除元素不支援Remove(), RemoveAt()
排序Array.Sort(arr)al.Sort()
搜尋Array.BinarySearch(arr, val)al.BinarySearch(val)
類型安全強型別Object (需轉型)

四、學習建議

  1. 新專案優先使用 List<T>,兼具強型別與動態擴容
  2. 理解 Array 靜態方法(Sort, BinarySearch, ConvertAll, ForEach)在高效能、函數式場景的價值
  3. ArrayList 僅用於維護 .NET 2.0 以前的舊代碼
  4. 掌握陣列與集合的轉換:ToArray(), CopyTo(), List.ToArray()

陣列操作是演算法實現的基石,熟練掌握排序、搜尋、轉換等核心 API,能顯著提升編碼效率與程式效能。

Array 排序搜尋轉換輸出 ArrayList 字元增刪 ArrayList 修改計數 ArrayList 數值排序搜尋
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved