【C#零基础从入门到精通】(十六)——C#数组详解

【C#零基础从入门到精通】(十六)——C#数组详解

在 C# 中,数组是一种用于存储相同类型元素的固定大小的有序集合。它可以包含任何数据类型,如整数、字符串、自定义对象等。以下从数组的声明、初始化、访问、多维数组、锯齿数组以及数组的常用操作方法等方面详细介绍 C# 数组。

1. 数组的声明

在 C# 中,声明数组需要指定数组元素的类型,后面跟上方括号 [] ,再加上数组的名称。其基本语法如下:

<元素类型>[] <数组名称>;

例如,声明一个整数类型的数组:

int[] numbers;

这里只是声明了一个名为 numbers 的整数数组,但还没有为其分配内存空间,不能直接使用。

2. 数组的初始化

2.1 静态初始化

静态初始化是在声明数组的同时为其赋初值,编译器会根据初始值的数量自动确定数组的长度。语法如下:

<元素类型>[] <数组名称> = new <元素类型>[] { 值1, 值2, ... };

也可以简化为:

<元素类型>[] <数组名称> = { 值1, 值2, ... };

示例:

int[] numbers = new int[] { 1, 2, 3, 4, 5 };
// 简化形式
int[] numbers2 = { 1, 2, 3, 4, 5 };
2.2 动态初始化

动态初始化是在声明数组时指定数组的长度,然后再为数组元素赋值。语法如下:

<元素类型>[] <数组名称> = new <元素类型>[数组长度];

示例:

int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
// 其他元素赋值...

3. 数组的访问

数组的元素可以通过索引来访问,索引从 0 开始,最大索引为数组长度减 1。语法如下:

<数组名称>[索引];

示例:

int[] numbers = { 1, 2, 3, 4, 5 };
int firstNumber = numbers[0]; // 访问第一个元素,值为 1
int lastNumber = numbers[4];  // 访问最后一个元素,值为 5

4. 数组的长度

可以使用数组的 Length 属性来获取数组的长度,即数组中元素的个数。示例:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // length 的值为 5

5. 多维数组

多维数组是包含多个维度的数组,常见的有多维二维数组和三维数组等。

5.1 二维数组

二维数组可以看作是一个表格,有行和列。声明和初始化二维数组的语法如下:

<元素类型>[,] <数组名称> = new <元素类型>[行数, 列数];

示例:

int[,] matrix = new int[3, 4]; // 声明一个 3 行 4 列的二维数组
// 初始化并赋值
int[,] matrix2 = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };

访问二维数组元素需要指定行索引和列索引:

int value = matrix2[1, 2]; // 访问第 2 行第 3 列的元素,值为 7
5.2 三维数组

三维数组可以看作是多个二维数组的集合。声明和初始化三维数组的语法如下:

<元素类型>[,,] <数组名称> = new <元素类型>[第一维长度, 第二维长度, 第三维长度];

示例:

int[,,] cube = new int[2, 3, 4]; // 声明一个三维数组

6. 锯齿数组

锯齿数组是数组的数组,即每个元素又是一个数组,而且每个子数组的长度可以不同。声明和初始化锯齿数组的语法如下:

<元素类型>[][] <数组名称> = new <元素类型>[外层数组长度][];

示例:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2];
jaggedArray[1] = new int[3];
jaggedArray[2] = new int[4];
// 初始化并赋值
int[][] jaggedArray2 = { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8, 9 } };

访问锯齿数组元素需要指定外层数组索引和内层数组索引:

int value = jaggedArray2[1][2]; // 访问第二个子数组的第三个元素,值为 5

7. 数组的常用操作方法

7.1 Array.Length

用于获取数组的长度,前面已经介绍过。

7.2 Array.Sort

用于对数组元素进行排序,示例:

int[] numbers = { 5, 3, 1, 4, 2 };
Array.Sort(numbers); // 对数组进行升序排序
7.3 Array.Reverse

用于反转数组元素的顺序,示例:

int[] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers); // 反转数组元素顺序,现在数组为 { 5, 4, 3, 2, 1 }
7.4 Array.IndexOf

用于查找数组中某个元素第一次出现的索引位置,如果未找到则返回 -1,示例:

int[] numbers = { 1, 2, 3, 4, 5 };
int index = Array.IndexOf(numbers, 3); // index 的值为 2

8. 数组的遍历

可以使用 for 循环、foreach 循环等方式遍历数组。

8.1 for 循环遍历
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i]);
}
8.2 foreach 循环遍历
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
    Console.WriteLine(num);
}

综上所述,C# 数组提供了强大而灵活的功能,能够满足各种不同的编程需求,合理运用数组可以高效地处理大量相同类型的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Csharp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值