前言
数组是一种数据结构,存储连续内存位置的相同类型的元素的集合,通过使用索引进行访问元素。数组提供了一种有效存储和访问固定数量元素的方法。在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 编辑过