第十六章:C# 数组(Array)

数组是用于存储相同类型数据的集合。在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#中数组的声明和初始化、访问数组元素、遍历数组、多维数组、锯齿数组以及数组的常用方法。数组是处理一组相关数据的基础结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值