数组

C#语言中数组是一组同类型的数据元素,每个元素可以通过下标的方式访问,数组是固定长度的,下标从0开始。C#中支持一维数组和高维数组(矩阵数组),除此之外C#还支持交错数组,允许作为元素的数组的维度和大小不同。

声明和实例化数组对象

一维数组

下面例子代码中我们声明了一个名为arr的整形数组,并使用new关键字实例化了一个长度为4的整形数组对象,随后使用数组的下标进行了赋值和取值。

// 声明和实例化数组
int[] arr = new int[4];
// 通过下标赋值
arr[0] = 0;
// 通过下标取值
int i = arr[0];

数组创建时,如果没有使用显式的赋值,其每个元素会被初始化为默认值。

此外,我们还要知道,C#中所有数组都是System.Array的派生类,是引用类型的,但元素既可以是值类型也可以是引用类型。

矩阵数组

C#中的矩阵数组是一种高维数组,但每个维度元素长度需要相同,矩阵数组使用方括号和逗号[,,]的形式表达数组的维度。下面例子代码中,我们实例化了一个二维数组,并进行了赋值和取值。

int[,] arr = new int[3, 3];
arr[0, 0] = 0;
int i = arr[0, 0];

交错数组

交错数组允许作为元素的数组的维度和大小不同,下面例子代码初始化了一个交错数组。

int[][] arr = new int[3][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];

数组的显式初始化

上面我们实例化数组时只是指定了数组的长度,实际上我们可以直接在初始化时进行显式的赋值。下面代码演示了一维数组和矩阵数组的显式初始化。

int[] arr = new int[] { 1, 2, 3, 4 };
int[,] arr = new int[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };

使用显式初始化时,我们可以省略数组的长度。

数组的迭代

C#中我们常用forforeach语句对数组进行迭代,下面例子对一维数组进行了迭代。

// 数组声明和初始化
int[] arr = new int[] { 1, 2, 3, 4, 5 };
// 使用for循环迭代
for (int i = 0; i < arr.Length; i++)
{
    Console.WriteLine(arr[i]);
}
// 使用foreach循环迭代
foreach (int p in arr)
{
    Console.WriteLine(p);
}

对于矩阵数组和交错数组,其实和大多数类C语言的写法都是一样的,这里就不多介绍了。

数组的属性和方法

C#中的数组对象对一些常用的属性和方法进行了实现,下面列出了其中比较常用的属性和方法,完整的文档我们查阅MSDN中的System.Array类。

成员 类型 生存期 说明
Rank 属性 实例 获取数组维度
Length 属性 实例 获取数组长度
GetLength 方法 实例 获取指定维度的长度
Clear 方法 静态 清空一定范围内元素为初始值
Sort 方法 静态 数组排序
BinarySearch 方法 静态 二分查找搜索数组中指定内容
Clone 方法 实例 数组浅拷贝
IndexOf 方法 静态 返回某个元素的索引
Reverse 方法 静态 反转数组
GetUpperBound 方法 实例 获取数组指定维度的上限
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap