C# 数组:初学者的多值存储指南
你好,有抱负的程序设计师!今天,我们将踏上一段激动人心的旅程,探索 C# 数组的世界。可以把数组想象成一个神奇的容器,它可以存储多个相同类型的项目。这就像一盒你最喜欢的巧克力,但我们要存储的是数据!
数组是什么?
在我们深入了解之前,先来了解一下数组是什么。数组是一种数据结构,允许你在单个变量中存储多个相同类型的数据。想象你是一名老师(就像我一样!),你想存储30个学生的成绩。你不需要创建30个独立的变量,而是可以使用一个数组来保存所有这些成绩。酷吧?
声明数组
让我们从基础开始:如何声明一个数组。语法非常简单:
dataType[] arrayName;
例如,如果我们想声明一个整数数组,我们会写:
int[] grades;
这行代码告诉 C# 我们正在创建一个名为 grades
的数组,它将包含整数值。但记住,此时我们还没有指定我们要存储多少成绩,或者这些成绩是什么。
初始化数组
既然我们已经声明了数组,让我们给它一个大小。我们可以用几种方式来做:
方法1:指定大小
int[] grades = new int[5];
这会创建一个可以存储5个整数值的数组。最初,所有元素将被设置为整数的默认值,即0。
方法2:用值初始化
int[] grades = new int[] { 85, 92, 78, 95, 88 };
在这里,我们创建数组的同时立即用值填充它。C# 足够智能,能够根据我们提供的值推断出我们想要一个5个元素的数组。
给数组赋值
假设我们使用方法1创建了数组,现在我们想添加一些成绩。我们可以通过访问数组的每个元素来做到这一点,使用它的索引:
grades[0] = 85; // 第一个成绩
grades[1] = 92; // 第二个成绩
grades[2] = 78; // 第三个成绩
grades[3] = 95; // 第四个成绩
grades[4] = 88; // 第五个成绩
记住,C#(和大多数编程语言)中的数组索引从0开始,而不是1。所以第一个元素在索引0,第二个在索引1,以此类推。
访问数组元素
要访问数组中的元素,我们使用相同的方括号表示法:
int firstGrade = grades[0]; // 这将给我们85
int thirdGrade = grades[2]; // 这将给我们78
下面是一个将所有这些内容结合在一起的有趣程序:
int[] grades = new int[5];
grades[0] = 85;
grades[1] = 92;
grades[2] = 78;
grades[3] = 95;
grades[4] = 88;
Console.WriteLine("成绩是:");
for (int i = 0; i < grades.Length; i++)
{
Console.WriteLine($"学生 {i + 1}: {grades[i]}");
}
这个程序将输出:
成绩是:
学生 1: 85
学生 2: 92
学生 3: 78
学生 4: 95
学生 5: 88
使用 foreach 循环
C# 提供了一个方便的 foreach
循环,使得遍历数组变得非常简单。让我们用 foreach
重写之前的例子:
int[] grades = new int[] { 85, 92, 78, 95, 88 };
Console.WriteLine("成绩是:");
int studentNumber = 1;
foreach (int grade in grades)
{
Console.WriteLine($"学生 {studentNumber}: {grade}");
studentNumber++;
}
foreach
循环会自动遍历数组中的每个元素,每次迭代将其分配给变量 grade
。这是一种更干净、更易读的方式来遍历数组的所有元素。
多维数组
到目前为止,我们一直在使用一维数组。但如果我们想要为多个科目创建一个成绩簿呢?这就是多维数组派上用场的地方。让我们创建一个2维数组来存储3个学生的4门科目成绩:
int[,] gradeBook = new int[3, 4]
{
{ 85, 92, 78, 95 },
{ 80, 89, 93, 87 },
{ 76, 88, 91, 84 }
};
Console.WriteLine("成绩簿:");
for (int i = 0; i < 3; i++)
{
Console.Write($"学生 {i + 1}: ");
for (int j = 0; j < 4; j++)
{
Console.Write($"{gradeBook[i, j]} ");
}
Console.WriteLine();
}
这将输出:
成绩簿:
学生 1: 85 92 78 95
学生 2: 80 89 93 87
学生 3: 76 88 91 84
数组方法
C# 为处理数组提供了几种有用的方法。以下是一些最常见的方法:
方法 | 描述 | 示例 |
---|---|---|
Array.Sort() | 对数组中的元素进行排序 | Array.Sort(grades); |
Array.Reverse() | 反转数组中元素顺序 | Array.Reverse(grades); |
Array.Find() | 查找匹配指定条件的第一个元素 | int firstPassingGrade = Array.Find(grades, grade => grade >= 60); |
Array.FindAll() | 查找匹配指定条件的所有元素 | int[] passingGrades = Array.FindAll(grades, grade => grade >= 60); |
Array.IndexOf() | 返回数组中第一个出现的值的索引 | int index = Array.IndexOf(grades, 95); |
下面是一个快速示例,使用其中的一些方法:
int[] grades = new int[] { 85, 92, 78, 95, 88 };
Array.Sort(grades);
Console.WriteLine("排序后的成绩:");
foreach (int grade in grades)
{
Console.Write($"{grade} ");
}
Console.WriteLine();
int highestGrade = grades[grades.Length - 1];
Console.WriteLine($"最高成绩是:{highestGrade}");
int lowestGrade = grades[0];
Console.WriteLine($"最低成绩是:{lowestGrade}");
这个程序将输出:
排序后的成绩:
78 85 88 92 95
最高成绩是:95
最低成绩是:78
就这样!你刚刚完成了 C# 数组的快速游览。记住,熟能生巧,所以不要害怕实验这些概念。尝试创建不同类型的数组,玩转多维数组,探索各种数组方法。在你意识到之前,你将成为一个数组巫师,轻松地召唤出复杂的数据结构!
未来的程序员们,快乐编码!??
Credits: Image by storyset