C# 数组基础:声明、初始化与访问详解

山间有风
山间有风
发布时间:2026-10-16 | 6人浏览过
原创

本文详细介绍 C# 中数组的声明、初始化方法及核心特性,涵盖从基本的一维数组到复杂的多维和交错数组。重点讲解零基索引规则、对象化数组管理及 foreach 遍历技巧。

结果或目标

在 C# 中正确且高效地使用数组进行数据存储、管理与遍历,需明确其与其他语言(如 C/C++)的差异。

准备条件

C# 编译器环境,了解基本的 变量 概念即可开始学习。

真实操作顺序

第1步:理解数组基础特性

C# 数组采用零基索引,即第一个元素的索引为 0。与多数语言类似,但存在关键差异:

  • 类型声明位置:方括号必须紧跟数据类型之后,而非标识符后。
  • 尺寸灵活性:数组的大小不是类型的一部分,这意味着可以重新分配不同长度的新数组给同一变量。
// 合法:方括号在类型后
int[] table;

// 非法:方括号不能在标识符后
// int table[]; 

// 尺寸示例:可重新分配大小
int[] numbers;
numbers = new int[10]; // 初始化为10个元素
numbers = new int[20]; // 重新分配为20个元素

第2步:声明不同类型的数组

C# 支持三种主要数组结构,声明时不创建内存,仅定义类型:

  1. 一维数组:使用一个维度声明。
    int[] numbers;
  2. 多维数组(矩形数组):使用逗号分隔多个维度。
    string[,] names;
  3. 交错数组(数组的数组):使用双中括号声明。
    byte[][] scores;

数组是对象,必须通过 new 关键字实例化。例如:

// 一维
int[] arr1d = new int[5];

// 多维 (5行4列)
string[,] arr2d = new string[5, 4];

// 交错数组初始化
byte[][] arrJagged = new byte[5][];
for (int x = 0; x < arrJagged.Length; x++) {
    arrJagged[x] = new byte[4];
}

第3步:初始化数组

若声明时未初始化,成员将设为该类型的默认值;字段中的数组默认为 null。推荐使用大括号 {} 直接赋值:

1. 一维数组初始化:

// 完整写法
int[] numbers = new int[5] {1, 2, 3, 4, 5};

// 省略长度
int[] numbers = new int[] {1, 2, 3, 4, 5};

// 省略 new (推荐简洁写法)
string[] names = {"Matt", "Joanne", "Robert"};

2. 多维数组初始化:

int[,] matrix = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike","Amy"}, {"Mary","Albert"} };

3. 交错数组初始化:

注意内部子数组仍需单独初始化:

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

// 或者简洁写法
int[][] jaggedCompact = {
    new int[] {2,3,4},
    new int[] {5,6,7,8,9}
};

第4步:访问与修改数组成员

使用索引器访问元素,操作直观:

int[] nums = {10, 9, 8, 7, 6};
nums[4] = 5; // 修改第5个元素

int[,] matrix = { {1, 2}, {3, 4} };
matrix[1, 1] = 5; // 修改多维元素

int[][] jagged = new int[][] { new int[]{1,2}, new int[]{3,4,5} };
jagged[0][0] = 58; // 访问交错数组元素

第5步:利用 System.Array 属性与方法

所有数组都继承自 System.Array 抽象基类,可利用其属性和方法:

  • 获取长度:使用 Length 属性。
int[] data = {1, 2, 3, 4, 5};
int length = data.Length; // 结果为 5
  • 实用功能:System.Array 还提供排序、搜索和复制等静态方法。

第6步:遍历数组元素

使用 foreach:适合简单读取,代码简洁。

int[] values = {4, 5, 6, 1, 2};
foreach (int i in values) {
    System.Console.WriteLine(i);
}

// 多维数组同样适用
int[,] multi = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in multi) {
    Console.Write("{0} ", i); // 输出: 9 99 3 33 5 55
}

使用 for 循环:对于多维数组,嵌套 for 循环能提供更精确的控制(如按行/列访问)。

完成判断

成功创建、初始化并通过索引或循环访问不同类型的 C# 数组,即视为掌握基础用法。

简要总结

C# 数组灵活且强大,需注意“方括号在类型后”及“数组即对象”的核心原则。根据需求选择一维、多维或交错数组,并利用 foreach 简化遍历过程。

以上就是 C# 数组基础学习资料的详细内容,更多关于 C# 数组操作与高级用法的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表