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