跳转到内容

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

内存结构示意图[编辑 | 编辑源代码]

graph LR A[matrix[0,0] -->|1| B[Row 0] A -->|2| C[Row 0] D[matrix[1,0] -->|3| E[Row 1] D -->|4| F[Row 1]

数组的操作[编辑 | 编辑源代码]

遍历数组[编辑 | 编辑源代码]

使用 forforeach 循环:

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>)。

公式示例[编辑 | 编辑源代码]

计算数组元素的方差(σ²): σ2=1ni=1n(xiμ)2 其中,μ 是平均值,n 是数组长度。

总结[编辑 | 编辑源代码]

数组是C#中高效存储同类型数据的结构,适用于固定大小的场景。掌握其基础操作后,可进一步学习集合(如列表、字典)以处理动态数据。