数组是什么

数组是把一串同类型的数据排成一排存放的容器,比如全班 40 个人的成绩、一周 7 天的温度。给这一批数据起一个名字,用编号就能逐个取出,不用再声明 score1、score2、score3 这样一长串变量。

声明与初始化

C# 声明数组用「类型加中括号」:

int[] scores = new int[5];          // 开一个能放 5 个 int 的数组,元素默认全是 0
string[] names = { "小明", "小红", "小刚" };   // 直接给出初始值
double[] temps = new double[] { 36.5, 37.1, 36.8 };

最常用的是第二种大括号写法,元素个数由编译器自动数好。注意数组长度在创建时就定死了,之后不能伸缩,需要动态增减时要改用 List。

访问与修改元素

数组元素从 0 开始编号,用中括号加下标访问:

string[] names = { "小明", "小红", "小刚" };

Console.WriteLine(names[0]);   // 输出:小明
Console.WriteLine(names[2]);   // 输出:小刚

names[1] = "小红帽";            // 直接赋值就能修改
Console.WriteLine(names[1]);   // 输出:小红帽

下标越界会抛出 IndexOutOfRangeException 异常,拿不准长度时先看下一节的 Length。

用 for 和 foreach 遍历

把每个元素都处理一遍叫遍历,for 循环配合下标最直接:

int[] scores = { 90, 85, 78 };

for (int i = 0; i < scores.Length; i++)
{
    Console.WriteLine($"第 {i + 1} 个:{scores[i]}");
}
// 输出:
// 第 1 个:90
// 第 2 个:85
// 第 3 个:78

只读遍历用 foreach 更简洁,不用操心下标:

foreach (int s in scores)
{
    Console.WriteLine(s);   // 依次输出 90、85、78
}

要修改元素用 for,只用值就用 foreach,记住这个分工就够了。

常用属性与方法

Length 给出元素个数;Array 类还提供排序、反转等现成方法:

int[] nums = { 42, 7, 19, 3 };

Console.WriteLine(nums.Length);   // 输出:4

Array.Sort(nums);                 // 升序排序
Console.WriteLine(nums[0]);       // 输出:3

Array.Reverse(nums);              // 原地反转
Console.WriteLine(nums[0]);       // 输出:42

查找也有对应方法:Array.IndexOf(nums, 19) 返回元素第一次出现的位置,找不到返回 -1,配合下标判断就能做简单查找。

二维数组简介

表格类数据可以用二维数组,两个下标定位一个元素:

int[,] grid = { { 1, 2 }, { 3, 4 } };

Console.WriteLine(grid[1, 0]);   // 输出:3(第 2 行第 1 列)

声明时用逗号区分维度,grid[row, col] 这种逗号写法和交错数组 int[][] 不是一回事,入门阶段先掌握逗号版即可。

小结

这篇学会了 C# 数组的核心用法:大括号初始化、下标读写元素、for 配 Length 与 foreach 两种遍历,以及 Length、Array.Sort、Array.IndexOf 等常用成员。数组长度固定、访问快,数据量确定时它是首选;数据要动态增减时再换 List。