C# 数组怎么声明和使用?从基础概念到常见操作一文讲清

陆遥
陆遥
发布时间:2026-08-22| 169人浏览过
原创

前言

很多人在刚接触 C# 数组时,容易把“声明、初始化、访问和遍历”混成一团,写法看起来简单,真正动手时却常常卡在长度、索引和语法细节上。本文按照实际编码顺序,把数组的核心规则、常见声明方式和高频操作拆开说明,你可以据此快速判断每种写法适合什么场景。

数组是 C# 中最基础的一类数据结构,适合存放一组“类型相同、数量固定”的数据。本文按实际使用顺序整理数组的核心知识:先看它是什么,再看怎么声明和初始化,最后用几个高频操作把日常写法串起来,方便你在入门阶段直接上手。

什么是 C# 数组

数组用于存储相同类型的元素集合。在 C# 里,数组属于引用类型,这意味着数组变量本身保存的是对内存中数组对象的引用,而不是整组数据的拷贝。

展示 C# 数组的核心特征与索引访问规则的信息图
C# 数组的基础规则用结构化示意图梳理数组的三条基础规则:同类型、固定长度、索引从 0 开始。

数组中的元素通过索引访问,索引从 0 开始。按照结构不同,数组可以是一维数组、多维数组,或者交错数组。本文重点覆盖最常见的一维数组和基础多维数组写法。

数组有哪些特点

  • 固定长度:数组一旦创建,长度就不能再改变。
  • 同类型元素:同一个数组中的元素必须是相同类型。
  • 索引访问:可以通过下标快速读取或修改元素,起始索引为 0。

数组怎么声明

在 C# 中,数组的声明方式比较直接。你可以先声明变量,也可以在声明的同时完成分配和初始化。

单维数组声明

// 声明一个整型数组
int[] intArray;

// 或者直接初始化数组
int[] intArray = new int[5];

这里的 new int[5] 表示创建一个长度为 5 的整型数组。长度确定后,这个数组就不能扩容。

多维数组声明

// www.ja vascriptcn.com code example
// 声明一个二维数组
int[,] multiDimArray = new int[3, 4];

// 或者直接初始化
int[,] multiDimArray = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

如果你需要按“行、列”组织数据,可以使用二维数组。上面的例子中,new int[3, 4] 表示 3 行 4 列。

隐式类型数组

// 使用var关键字声明数组,编译器会根据初始化的值推断出数组的类型
var stringArray = new[] {"Hello", "World"};

这种写法适合初始化值已经很明确的场景。编译器会根据元素内容推断出数组类型,这里推断结果就是字符串数组。

数组如何初始化

数组初始化常见有两种思路:声明时直接给值,或者先创建数组,再按索引逐个赋值。

直接初始化

// 直接初始化一个整型数组
int[] numbers = {1, 2, 3, 4, 5};

// 初始化一个字符串数组
string[] names = {"Alice", "Bob", "Charlie"};

当数据在编写代码时就已经确定,这种写法最简洁。

分步初始化

// 先声明数组,然后逐个赋值
int[] scores = new int[3];
scores[0] = 90;
scores[1] = 85;
scores[2] = 95;

如果数组长度已知,但元素值要分多步填入,可以采用这种方式。它在处理输入结果、计算结果或后续赋值时更常见。

如何访问数组元素

访问数组元素依赖索引。因为索引从 0 开始,所以第一个元素是 [0],最后一个元素通常写成 [数组名.Length - 1]。

int[] grades = {92, 85, 76, 88, 91};

// 访问第一个元素
Console.WriteLine(grades[0]); // 输出: 92

// 访问最后一个元素
Console.WriteLine(grades[grades.Length - 1]); // 输出: 91

这也是初学者最容易出错的地方之一:数组长度是元素个数,但最后一个可访问索引一定比长度小 1。

数组的常用操作

理解声明和初始化之后,接下来要掌握的就是几个最常用的数组操作:取长度、遍历、复制和排序。

展示 C# 数组声明、初始化与常见操作对应关系的信息图
数组常见操作速览把声明、初始化、遍历和复制排序放在同一张图中,方便快速建立数组使用流程。

获取数组长度

可以通过 Length 属性获取数组长度。

int[] values = {10, 20, 30, 40, 50};
Console.WriteLine(values.Length); // 输出: 5

遍历数组

数组遍历最常见的是 for 和 foreach 两种写法,它们适合的场景略有不同。

for 循环遍历

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

for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i]);
}

for 适合你既要访问元素,也要使用索引位置的情况。

foreach 循环遍历

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

foreach (var number in numbers)
{
    Console.WriteLine(number);
}

foreach 写法更简洁,适合只关心元素本身、不关心下标的场景。

复制数组

复制数组可以使用 Array.Copy 方法:

// www.ja vascriptcn.com code example
int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[5];

Array.Copy(source, destination, 5);

// 打印destination数组的内容
foreach (var item in destination)
{
    Console.WriteLine(item);
}

这里的 5 表示复制 5 个元素。实际使用时,目标数组通常需要先准备好足够的空间。

数组排序

如果只是对数组进行基础升序排序,可以直接使用 Array.Sort。

int[] numbers = {5, 3, 8, 1, 2};

Array.Sort(numbers);

foreach (var number in numbers)
{
    Console.WriteLine(number);
}

执行后,数组中的元素会按从小到大的顺序重新排列。

什么时候适合使用数组

如果你面对的是一组类型统一、数量固定,并且需要按索引快速访问的数据,数组通常是最直接的选择。C# 中数组的核心规则并不复杂:先确定元素类型和长度,再根据场景选择初始化方式,后续结合 Length、循环、Array.Copy 和 Array.Sort 等常用操作即可完成大部分基础任务。

对于入门学习来说,先把一维数组的声明、赋值、访问和遍历写熟,再进一步理解多维数组,会更容易建立稳定的使用习惯。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。