前言
數組是一種數據結構,存儲連續內存位置的相同類型的元素的集合,通過使用索引進行訪問元素。數組提供了一種有效存儲和訪問固定數量元素的方法。在C#中數組包括一維數組、多維數組、交錯數組。本文探索在C#中數組的使用。
一維數組
一維數組是最簡單的數組形式。這些數組用于存儲預定義類型的項數。一維數組中的所有項目都連續存儲,從0到數組長度減1的大小。
1、聲明數組
string[] expressArray = new string[5];
聲明名為expressArray的數組,它可以容納 5 個字符串類型,但是數組的元素尚未初始化,并且它們的值尚未定義。
string[] expressArray = new string[5]{"JD","SF","JT","ZTO","YTO"};
// 或
string[] expressArray = {"JD","SF","JT","ZTO","YTO"};
聲明名為expressArray的數組,它可以容納 5 個字符串類型,并對數組的元素初始化和定義其值。
var expressArray = new string[] {"JD","SF","JT","ZTO","YTO"};
聲明名為expressArray的數組,數組類型是從初始值設定項推斷的。
int* intArray = stackalloc int[5];
stackable關鍵字在堆棧而不是堆上分配內存。這是聲明名為intArray的非托管整數數組,它可以容納5個整數。intArray數組的元素尚未初始化,并且值也未定義。
注意,謹慎使用堆棧分配的數組,因為如果數組大小太大或在遞歸函數中使用,它們可能會導致堆棧溢出。
2、初始化數組
數組聲明之后,緊跟就是初始化數組。數組的初始化過程包括向數組添加實際數據。下面通過幾個代碼段了解數組的初始化。
string[] platformArray = {"TB","TM","JD","PDD"};
// 初始化固定數組
string[] platformArray = new string[4] {"TB","TM","JD","PDD"}
// 一次初始化一個固定數組
string[] platformArray = new string[4];
platformArray[0] = "TB";
platformArray[1] = "TM";
platformArray[2] = "JD";
platformArray[2] = "PDD";
// 在聲明過程中初始化動態數組項 根據初始化項決定數組長度
string[] platformArray = new string[] {"TB","TM","JD","PDD","DOUYIN"}
注意:在C#中,數組的索引以0開始,也就是說第一個元素的索引為 0,第二個元素的索引為 1,依此類推。
3、訪問數組元素
數組元素的訪問,我們可以通過在數組中傳遞元素的索引來訪問數組元素或使用循環控制語句遍歷數組的元素。下面通過二個代碼段了解其使用。
// 初始化固定數組
string[] platformArray = new string[4] {"TB","TM","JD","PDD"}
// 逐一讀取數組項
Console.WriteLine(platformArray[0]);
Console.WriteLine(platformArray[2]);
// 初始化固定數組
string[] platformArray = new string[4] {"TB","TM","JD","PDD"}
// 使用循環控制語句遍歷數組的元素
foreach(string item in platformArray)
{
Console.WriteLine(item);
}
多維數組
多維數組(矩形數組)具有多個維度。多維數組的形式是矩陣。
1、聲明數組
多維數組的聲明方式與一維數組類似,下面通過幾個代碼段了解其使用。
string[,] expressArray = new string[2,5];
var expressArray = new string[2,3]
string[,] platformArray = new string[2, 2] { { "TB", "淘寶" }, { "JD", "京東" } };
2、初始化數組
下面通過幾個代碼段了解數組的初始化:
定義了3x2 和 2x2 的多維數組,第一個數組可以存儲6個元素,第二個數組可以存儲4個元素。
// 定義3x2多維數組 在聲明期間初始化
int[,] numbers = new int[3, 2] { { 2, 230 }, { 3, 400 }, { 4, 600 } };
// 定義2x2多維數組 在聲明期間初始化
string[,] platformArray = new string[2, 2] {{ "TB", "淘寶" }, { "JD", "京東" } };
多維動態數組,下面代碼段創建并初始化兩個多維動態數組。根據初始化情況決定數組存儲元素個數。
// 初始化多維動態數組為2x2
int[,] numbers = new int[,] { { 1, 800 }, { 2, 500 }};
// 初始化多維動態數組為4x2
string[,] platformArray = new string[,] {{ "TB", "淘寶" }, { "JD", "京東" } ,{"TM","天貓"},{"PDD","拼多多"}};
也可以一次初始化一個元素的數組項。
string[, ] platformArray = new string[3, 2];
platformArray[0, 0] = "TB";
platformArray[1, 0] = "淘寶";
platformArray[2, 0] = "JD";
platformArray[0, 1] = "京東";
platformArray[1, 1] = "TM";
platformArray[2, 1] = "天貓";
3、訪問數組元素
多維數組項以矩陣格式表示;我們需要指定 Matrix 維度來訪問其元素。如item[1,2] 表示矩陣中第二行和第三列的數組元素項。
// 初始化多維動態數組為4x2
string[,] platformArray = new string[,] {{ "TB", "淘寶" }, { "JD", "京東" } ,{"TM","天貓"},{"PDD","拼多多"}};
// 逐一讀取數組項
Console.WriteLine(platformArray[1,0]);
Console.WriteLine(platformArray[1,2]);
交錯數組
交錯數組是數組的數組。交錯數組的元素是其他數組。
1、聲明數組
交錯數組的聲明涉及兩個括號。下面的代碼段聲明了一個交錯數組,該數組包含數組的三個項。
string[][] expressJaggedArray = new string[3][];
2、初始化數組
交錯數組聲明之后,使用之前,必須初始化其項。下面代碼段初始化一個交錯數組。第一項包含兩個整數的整數數組,第二項包含四個整數的整數數組,第三項包含6個整數的整數數組。
// 聲明數組
int[][] jaggedArray = new int[3][];
// 初始化數組
jaggedArray[0] = new int[2];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[6];
還可以通過提供數組的值來初始化交錯數組的項。
// 聲明數組
int[][] jaggedArray = new int[3][];
// 初始化數組
jaggedArray[0] = new int[2] {
21,
22
};
jaggedArray[1] = new int[4] {
41,
42,
43,
44
};
jaggedArray[2] = new int[6] {
61,
62,
63,
64,
65,
66
};
3、訪問數組元素
通過下方式單獨訪問交錯數組的元素項:
Console.WriteLine(jaggedArray[0][1]);
Console.WriteLine(jaggedArray[1][2]);
通過數組的Length屬性循環訪問交錯數組的所有元素項:
for (int i = 0; i < jaggedArray.Length; i++)
{
Console.Write("元素({0}): ", i);
for (int j = 0; j < jaggedArray[i].Length; j++)
{
Console.Write("{0}{1}", jaggedArray[i][j], j == (jaggedArray[i].Length - 1) ? "" : " ");
}
Console.WriteLine();
}
小結
以上從數組的聲明、初始化和元素訪問幾個方面,了解 C# 中不同類型的數組的使用。
閱讀原文:原文鏈接
該文章在 2025/1/2 12:26:45 編輯過