C# 数组基础:声明、初始化与访问详解
本文详细介绍 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# 支持三种主要数组结构,声明时不创建内存,仅定义类型:
- 一维数组:使用一个维度声明。
int[] numbers; - 多维数组(矩形数组):使用逗号分隔多个维度。
string[,] names; - 交错数组(数组的数组):使用双中括号声明。
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# 数组操作与高级用法的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









