数组是用于存储相同类型数据的集合。在C#中,数组是引用类型,声明数组时需要指定数组的类型和大小。数组提供了一种方便的方法来存储和操作一组相关数据。
1. 数组的声明和初始化
数组的声明和初始化可以在一行完成,也可以分开进行。数组的大小在声明时固定,不能改变。
示例:
// 声明和初始化数组
int[] numbers = new int[5]; // 声明一个长度为5的整数数组
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
// 声明并初始化数组
int[] numbers = { 1, 2, 3, 4, 5 };
// 另一种声明和初始化数组的方式
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
在这些示例中,我们展示了不同的声明和初始化数组的方式。
2. 访问数组元素
可以通过数组的索引来访问数组的元素。数组的索引从0开始,到长度减1结束。
示例:
int[] numbers = { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[0]); // 输出 1
Console.WriteLine(numbers[4]); // 输出 5
在这个示例中,我们通过索引访问数组numbers
的元素。
3. 遍历数组
可以使用for
循环或foreach
循环来遍历数组中的所有元素。
使用for
循环遍历数组:
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
使用foreach
循环遍历数组:
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
Console.WriteLine(number);
}
在这些示例中,我们展示了使用for
循环和foreach
循环遍历数组的方式。
4. 多维数组
C#支持多维数组,包括二维数组、三维数组等。多维数组用于存储矩阵或表格等数据。
声明和初始化二维数组:
int[,] matrix = new int[3, 3]; // 声明一个3x3的二维数组
matrix[0, 0] = 1;
matrix[0, 1] = 2;
matrix[0, 2] = 3;
matrix[1, 0] = 4;
matrix[1, 1] = 5;
matrix[1, 2] = 6;
matrix[2, 0] = 7;
matrix[2, 1] = 8;
matrix[2, 2] = 9;
// 声明并初始化二维数组
int[,] matrix =
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
访问二维数组元素:
int[,] matrix =
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
Console.WriteLine(matrix[0, 0]); // 输出 1
Console.WriteLine(matrix[2, 2]); // 输出 9
遍历二维数组:
int[,] matrix =
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write($"{matrix[i, j]} ");
}
Console.WriteLine();
}
在这个示例中,我们使用嵌套的for
循环遍历二维数组matrix
的所有元素。
5. 锯齿数组(Jagged Arrays)
锯齿数组是数组的数组,每个子数组可以有不同的长度。锯齿数组提供了一种灵活的数据存储方式。
声明和初始化锯齿数组:
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };
访问锯齿数组元素:
int[][] jaggedArray =
{
new int[] { 1, 2 },
new int[] { 3, 4, 5 },
new int[] { 6, 7, 8, 9 }
};
Console.WriteLine(jaggedArray[0][0]); // 输出 1
Console.WriteLine(jaggedArray[2][3]); // 输出 9
遍历锯齿数组:
int[][] jaggedArray =
{
new int[] { 1, 2 },
new int[] { 3, 4, 5 },
new int[] { 6, 7, 8, 9 }
};
for (int i = 0; i < jaggedArray.Length; i++)
{
for (int j = 0; j < jaggedArray[i].Length; j++)
{
Console.Write($"{jaggedArray[i][j]} ");
}
Console.WriteLine();
}
在这个示例中,我们使用嵌套的for
循环遍历锯齿数组jaggedArray
的所有元素。
6. 数组的常用方法
C#提供了一些内置的方法来操作数组,如排序、查找和复制等。这些方法位于System.Array
类中。
排序数组:
int[] numbers = { 5, 3, 8, 1, 2 };
Array.Sort(numbers);
foreach (int number in numbers)
{
Console.WriteLine(number); // 输出排序后的数组:1, 2, 3, 5, 8
}
查找数组中的元素:
int[] numbers = { 5, 3, 8, 1, 2 };
int index = Array.IndexOf(numbers, 8);
Console.WriteLine($"Index of 8: {index}"); // 输出 Index of 8: 2
复制数组:
int[] sourceArray = { 1, 2, 3, 4, 5 };
int[] destinationArray = new int[5];
Array.Copy(sourceArray, destinationArray, sourceArray.Length);
foreach (int number in destinationArray)
{
Console.WriteLine(number); // 输出 1, 2, 3, 4, 5
}
在这些示例中,我们展示了如何使用Array
类的内置方法对数组进行排序、查找和复制。
结束语
C#中数组的声明和初始化、访问数组元素、遍历数组、多维数组、锯齿数组以及数组的常用方法。数组是处理一组相关数据的基础结构。