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

C# Array 陣列靜態方法完整指南:建立、搜尋、排序、複製與多維操作

     編輯:關於C#

System.Array 提供豐富的靜態方法統一操作所有陣列類型。本文系統歸納陣列建立、搜尋、排序、複製、清除、多維建立等核心靜態方法,並附帶實際代碼驗證。

一、陣列定義與初始化

// 標準語法
int[] classNum = new int[20]; // 宣告並配置

// 初始化列表
int[] intArray = { 1, 2, 1, 3 };

// 多維陣列
int[,] matrix = new int[3, 4];
int[,,] cube = new int[2, 3, 4];

二、核心靜態方法分類詳解

1. 搜尋方法

方法說明
IndexOf(Array, value)一維陣列線性搜尋首個匹配索引
IndexOf(Array, value, startIndex)從指定索引開始搜尋
IndexOf(Array, value, startIndex, count)指定範圍搜尋
LastIndexOf(...)反向搜尋最後匹配索引
BinarySearch(Array, value)二分搜尋(陣列必須已排序)
BinarySearch(Array, value, IComparer)自訂比較器二分搜尋
BinarySearch(Array, index, length, value)指定範圍二分搜尋

驗證範例

int[] arr = { 1, 2, 1, 3 };
Console.WriteLine("IndexOf 1: " + Array.IndexOf(arr, 1));       // 0
Console.WriteLine("LastIndexOf 1: " + Array.LastIndexOf(arr, 1)); // 2

2. 排序方法

  • Sort(Array):就地排序(實作 IComparable 的元素)
  • Sort(Array, IComparer):自訂比較器排序
  • Sort(Array, index, length):部分排序
  • Sort(keys, items):依鍵陣列排序並同步調整值陣列

3. 複製與建立

4. 其他實用方法

  • Clear(Array, index, length):將範圍元素設為預設值(0/null/false)
  • Reverse(Array) / Reverse(Array, index, length):反轉
  • SetValue(value, index...) / GetValue(index...):動態索引存取
  • Clone():實例方法,淺層複製
  • AsReadOnly(Array):回傳唯讀包裝

三、動態建立多維陣列實戰

// 建立 2x3 二維陣列
Array matrix = Array.CreateInstance(typeof(int), 2, 3);
matrix.SetValue(10, 0, 0);
matrix.SetValue(20, 1, 2);
Console.WriteLine("matrix[0,0]=" + matrix.GetValue(0, 0)); // 10
Console.WriteLine("matrix[1,2]=" + matrix.GetValue(1, 2)); // 20

// 建立自訂下限陣列 (索引從 1 開始)
Array custom = Array.CreateInstance(typeof(string), new[] { 3 }, new[] { 1 });
custom.SetValue("A", 1); custom.SetValue("B", 2); custom.SetValue("C", 3);
Console.WriteLine("custom[1]=" + custom.GetValue(1)); // A

四、完整驗證程式碼

int[] intArray = { 1, 2, 1, 3 };
Console.WriteLine("Array.IndexOf(intArray, 1) = " + Array.IndexOf(intArray, 1));     // 0
Console.WriteLine("Array.LastIndexOf(intArray, 1) = " + Array.LastIndexOf(intArray, 1)); // 2

輸出結果見圖示。

五、最佳實踐提醒

  1. BinarySearch 前必須 Sort,否則結果未定義
  2. Copy 目標陣列必須預先配置足夠大小
  3. CreateInstance 適用於運行時才確定類型/維度的動態場景
  4. 多維陣列優於交錯陣列([][])於記憶體連續性與快取友善度
  5. 現代代碼優先使用 Span<T>/Memory<T> 進行零複製切片操作

熟練掌握 Array 靜態方法,是處理陣列演算法、序列化、互操作等底層開發的基本功。

IndexOf LastIndexOf 輸出
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法用途
Copy(src, dest, length)陣列間複製指定長度
Copy(src, srcIdx, dest, destIdx, length)指定雙側索引複製
CreateInstance(Type, length)動態建立一維陣列
CreateInstance(Type, len1, len2)動態建立二維陣列
CreateInstance(Type, lengths[])動態建立多維陣列
CreateInstance(Type, lengths[], lowerBounds[])指定各維下限建立