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

C# 一維陣列初始化完整指南

     編輯:關於C#

陣列基礎概念

陣列是**固定大小**、同質型別元素的連續記憶體區塊。索引從 0 起算,Length 屬性取得長度 (不可變)。

宣告與初始化語法

1. 分步宣告 + 配置


int[] arr;           // 宣告參考變數 (null)
arr = new int[5];    // 配置 5 個元素,自動初始化為 0

2. 宣告並指定大小初始化


int[] arr = new int[5];          // {0,0,0,0,0}
string[] names = new string[3];  // {null,null,null}

3. 宣告時以集合初始化器指定元素 (大小自動推斷)


int[] arr1 = new int[5] { 1, 3, 5, 7, 9 };     // 明確大小 + 初始化器
int[] arr2 = new int[] { 1, 3, 5, 7, 9 };      // 省略大小
int[] arr3 = { 1, 3, 5, 7, 9 };                // **最簡潔** (僅限宣告行)

string[] days = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" };

4. 物件陣列初始化


var points = new Point[] 
{ 
    new Point(0,0), 
    new Point(10,20), 
    new Point(30,40) 
};

進階初始化模式

隱含型別陣列 (var)


var arr = new[] { 1, 2, 3 };        // int[]
var mixed = new[] { 1, "two", 3.0 }; // 編譯錯誤:型別不一致

指定索引初始化 (C# 6+)


int[] arr = new int[5] { [0]=10, [4]=20 }; // {10,0,0,0,20}

預設值初始化 (value type 為 0, reference type 為 null)


int[] a = new int[3];      // {0,0,0}
string[] b = new string[3]; // {null,null,null}
bool[] c = new bool[3];    // {false,false,false}

常見操作

操作語法範例
存取元素arr[index]arr[0] = 100;
取得長度arr.Lengthint n = arr.Length;
遍歷 (for)for (int i=0; i<arr.Length; i++)Console.WriteLine(arr[i]);
遍歷 (foreach)foreach (var item in arr)Console.WriteLine(item);
複製arr.Clone() / arr.ToArray()int[] copy = (int[])arr.Clone();
排序Array.Sort(arr)Array.Sort(arr);
搜尋Array.IndexOf / BinarySearchint idx = Array.IndexOf(arr, 5);
轉 Listarr.ToList()var list = arr.ToList();

效能與記憶體提醒

  • 固定大小:陣列建立後長度不可變,頻繁增刪請用 List<T>。
  • 值型別陣列:元素直接內嵌在陣列記憶體中,無額外物件標頭,**極度緊湊、快取友善**。
  • 參考型別陣列:陣列儲存參考 (指標),實際物件在堆上,需額外間接存取。
  • 大陣列 (>85KB):進入 LOH,避免頻繁配置/釋放,考慮 ArrayPool<T> 複用。

多維陣列與交錯陣列 (補充)


// 多維陣列 (矩形) - 連續記憶體
int[,] matrix = new int[3, 4] { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
int val = matrix[1, 2]; // 7

// 交錯陣列 (陣列的陣列) - 每行長度可不同
int[][] jagged = new int[3][];
jagged[0] = new int[] {1,2};
jagged[1] = new int[] {3,4,5,6};
jagged[2] = new int[] {7};

掌握一維陣列各種初始化寫法,配合 List<T> 彈性集合,即能應付大多數資料儲存需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved