请详细介绍C#中数组的声明和初始化⽅式

在 C# 中,数组是用于存储相同数据类型的固定大小的元素集合。以下是数组的声明和初始化的多种方式:


1. 声明数组

在 C# 中,声明数组的语法如下:

dataType[] arrayName;
  • dataType:表示数组元素的类型(例如 intstring 等)。
  • arrayName:数组的名称。

示例:

int[] numbers;    // 声明一个整型数组
string[] names;   // 声明一个字符串数组

2. 初始化数组

2.1 使用 new 关键字初始化

在声明数组后,使用 new 关键字为数组分配内存:

dataType[] arrayName = new dataType[size];
  • size:指定数组的长度。

示例:

int[] numbers = new int[5];    // 创建一个长度为 5 的整型数组

这种方式会为数组分配默认值:

  • 值类型(如 int, float:默认值为 0
  • 引用类型(如 string, object:默认值为 null

2.2 在声明时初始化元素

直接在声明数组时赋值:

dataType[] arrayName = { value1, value2, value3, ... };

示例:

int[] numbers = { 1, 2, 3, 4, 5 };    // 初始化包含 5 个元素的整型数组
string[] names = { "Alice", "Bob", "Charlie" };  // 初始化字符串数组

2.3 使用 new 关键字并初始化元素

同时使用 new 和初始化:

dataType[] arrayName = new dataType[] { value1, value2, value3, ... };

示例:

int[] numbers = new int[] { 10, 20, 30, 40 };

2.4 延迟初始化

声明数组后再分配内存:

int[] numbers;
numbers = new int[5];
numbers[0] = 10;
numbers[1] = 20;
// 依此类推

3. 多维数组

3.1 矩形数组(二维数组)

矩形数组的每一行长度相同:

dataType[,] arrayName = new dataType[rows, columns];

示例:

int[,] matrix = new int[2, 3];  // 创建一个 2 行 3 列的矩阵
matrix[0, 0] = 1;
matrix[1, 2] = 5;

也可以直接初始化:

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

3.2 锯齿数组(交错数组)

锯齿数组的每一行可以有不同的长度:

dataType[][] arrayName = new dataType[rows][];

示例:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2];  // 第一行有 2 个元素
jaggedArray[1] = new int[4];  // 第二行有 4 个元素
jaggedArray[2] = new int[3];  // 第三行有 3 个元素

直接初始化:

int[][] jaggedArray = {
    new int[] { 1, 2 },
    new int[] { 3, 4, 5, 6 },
    new int[] { 7, 8, 9 }
};

4. 隐式类型数组

使用 var 声明隐式类型数组:

var arrayName = new[] { value1, value2, value3, ... };
  • 数组的类型由编译器自动推断。

示例:

var numbers = new[] { 1, 2, 3 };       // 推断为 int[]
var names = new[] { "Alice", "Bob" };  // 推断为 string[]

5. 特殊类型的数组

5.1 常量数组

数组可以与 constreadonly 一起使用(但数组元素的值仍可更改):

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

5.2 参数数组

使用 params 关键字接收不确定数量的参数:

void PrintNumbers(params int[] numbers)
{
    foreach (var number in numbers)
    {
        Console.WriteLine(number);
    }
}
PrintNumbers(1, 2, 3, 4);  // 输出:1 2 3 4

6. 总结

数组类型声明方式初始化方式
一维数组int[] arrayName;int[] array = {1, 2, 3};
矩形数组(二维)int[,] arrayName;int[,] array = {{1, 2}, {3, 4}};
锯齿数组(二维)int[][] arrayName;int[][] array = {...};
隐式类型数组var arrayName = new[] {...};自动推断类型
参数数组params int[] arrayName动态传递

通过这些方式,C# 提供了强大的数组声明和初始化能力,可用于各种场景的高效数据存储和访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面试八股文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值