C#面试题更新 2026-08-03

在 C# 编程中,数组作为固定大小且类型一致的集合,其声明、初始化以及元素访问分别如何实现?请说明不同声明方式的适用场景。

考察说明

考查对 C# 数组基础语法的掌握,包括声明、初始化和访问。

回答思路

  1. 【回答框架 1】数组是存储同类型元素的固定大小集合,索引从 0 开始。声明语法为 类型[] 数组名,例如 int[] numbers,注意这时尚未分配内存。
  2. 【回答框架 2】初始化方式包括直接赋值初始值,如 int[] numbers = {1,2,3};或使用 new 关键字指定长度,如 int[] numbers = new int[5],此时元素默认值为类型默认值,数值型为 0,引用类型为 null;也可结合两者,如 int[] numbers = new int[3]{5,6,7}。
  3. 【回答框架 3】访问元素使用 数组名[索引] 形式,可读写。遍历可用 for 循环按索引访问,也可用 foreach 语句,但 foreach 只读。数组属性 Length 表示元素个数,但注意数组是引用类型,赋值给其他变量时传递引用。
  4. 【回答框架 4】多维数组如 int[,] matrix 声明二维数组,交错的锯齿数组如 int[][] jagged 则每行可不同长度。foreach 在多维数组与锯齿数组中行为不同,前者按行顺序遍历,后者需嵌套循环。
  5. 【回答框架 5】实际开发中,若集合大小固定且需高性能随机访问,选数组;若需动态增减则考虑 List<T>,但本题重在基础语法,需给出明确示例代码体现声明、初始化与访问。
  6. 【关键点 1】声明数组用 类型[] 数组名,通过 new 指定长度或初始化列表分配内存。
  7. 【关键点 2】访问元素用 数组名[索引],索引从 0 开始,Length 属性返回元素总数。
  8. 【关键点 3】数组是引用类型,默认值因元素类型而异,数值类型为 0,引用类型为 null。
  9. 【关键点 4】foreach 可简化遍历但无法修改元素,for 循环可按索引修改。
  10. 【关键点 5】多维数组与锯齿数组声明和遍历方式不同,需根据维度需求选择。
  11. 【易错点 1】容易混淆数组是引用类型,误以为赋值给新变量是值拷贝,实际是共享引用。
  12. 【易错点 2】初始化数组时索引越界是常见异常,需注意 Length-1 等边界条件。
  13. 【易错点 3】foreach 中尝试修改元素会导致编译错误,需使用 for 循环。