首页 >后端开发 >C++ >C# 多维数组:`[][]` 与 `[,]` – 有什么区别?

C# 多维数组:`[][]` 与 `[,]` – 有什么区别?

Barbara Streisand
Barbara Streisand原创
2025-01-24 11:21:09510浏览

C# Multidimensional Arrays:  `[][]` vs `[,]` – What's the Difference?

C# 中的 [][][,] 多维数组

C# 中的多维数组可以使用两种语法表示:[][][,]。虽然它们看起来很相似,但两者之间存在关键区别。

锯齿数组 [][]

double[][] ServicePoint = new double[10][];

此语法创建一个数组的数组。ServicePoint 中的每个元素都是对一个单独的 double 数组的引用。锯齿数组的优势在于其灵活性。它的行可以具有不同的长度,允许不规则的数据结构。

统一数组 [,]

double[,] ServicePoint = new double[10, 9];

相反,统一数组是一个具有固定行数和列数的矩形网格。这里,ServicePoint 有 10 行和 9 列,使其成为二维的。网格中的每个元素都使用行和列索引访问。

[][] 语法中的语法错误

[][] 语法示例中的错误是因为在声明时无法指定第二维。必须首先将数组声明为数组的数组(只有一个索引):

double[][] ServicePoint = new double[10][];

然后,在创建外部数组中的每个数组时,可以指定其维度:

ServicePoint[0] = new double[13];

[,] 语法中的赋值错误

第二个示例中的错误是由于统一数组不允许将一维数组赋值给行或列。这是因为 [,] 数组中的每个元素都是单个 double,需要行和列索引才能访问。

总而言之,[][] 表示锯齿数组,其中每一行可以具有不同的长度,而 [,] 表示具有固定行数和列数的统一数组。理解这种区别对于有效地使用 C# 中的多维数组至关重要。

以上是C# 多维数组:`[][]` 与 `[,]` – 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn