C Sharp 数组基础
外观
C#数组基础[编辑 | 编辑源代码]
介绍[编辑 | 编辑源代码]
数组是C#中最基础且重要的数据结构之一,它用于存储相同类型的元素的固定大小的集合。数组在内存中是连续存储的,通过索引(从0开始)可以高效访问任意元素。本章将详细介绍C#数组的声明、初始化、操作及实际应用。
数组的声明与初始化[编辑 | 编辑源代码]
在C#中,数组的声明需要指定元素类型和大小。以下是两种常见的初始化方式:
静态初始化[编辑 | 编辑源代码]
直接指定元素值,编译器自动推断大小:
int[] numbers = { 1, 2, 3, 4, 5 }; // 隐式初始化
string[] names = new string[] { "Alice", "Bob", "Charlie" }; // 显式初始化
动态初始化[编辑 | 编辑源代码]
先声明数组大小,再赋值:
double[] temperatures = new double[3]; // 声明长度为3的数组
temperatures[0] = 23.5;
temperatures[1] = 18.7;
输出示例:
若访问 numbers[2]
,输出为 3
(索引从0开始)。
多维数组[编辑 | 编辑源代码]
C#支持多维数组(如二维、三维)。以下是二维数组的示例:
int[,] matrix = new int[2, 2] { { 1, 2 }, { 3, 4 } };
Console.WriteLine(matrix[1, 0]); // 输出:3
内存结构示意图[编辑 | 编辑源代码]
数组的操作[编辑 | 编辑源代码]
遍历数组[编辑 | 编辑源代码]
使用 for
或 foreach
循环:
foreach (int num in numbers)
{
Console.WriteLine(num); // 依次输出1, 2, 3, 4, 5
}
常用方法[编辑 | 编辑源代码]
Array.Sort()
:排序数组Array.Reverse()
:反转数组Array.IndexOf()
:查找元素索引
示例:
Array.Sort(numbers); // numbers变为 [1, 2, 3, 4, 5]
int index = Array.IndexOf(numbers, 4); // 返回3
实际应用案例[编辑 | 编辑源代码]
场景:统计学生成绩的平均分
int[] scores = { 85, 90, 78, 92, 88 };
double sum = 0;
foreach (int score in scores)
{
sum += score;
}
double average = sum / scores.Length;
Console.WriteLine($"平均分:{average}"); // 输出:平均分:86.6
性能与注意事项[编辑 | 编辑源代码]
- 优点:访问速度快(时间复杂度O(1)),内存连续。
- 缺点:大小固定,插入/删除元素效率低。
- 推荐在需要固定大小时使用数组,动态数据可使用集合(如
List<T>
)。
公式示例[编辑 | 编辑源代码]
计算数组元素的方差(σ²): 其中, 是平均值, 是数组长度。
总结[编辑 | 编辑源代码]
数组是C#中高效存储同类型数据的结构,适用于固定大小的场景。掌握其基础操作后,可进一步学习集合(如列表、字典)以处理动态数据。