C# 中的多维数组 [][]
与 [,]
C# 提供两种多维数组:锯齿状数组 ([][]
) 和统一数组 ([,]
)。
锯齿状数组
锯齿状数组是数组的数组。这意味着锯齿状数组中的每个元素都是一个值数组,这些值数组的长度可以不同。
统一数组
统一数组是具有固定维数和每个维数固定大小的数组。
示例
以下代码创建了一个锯齿状数组:
<code class="language-csharp">double[][] ServicePoint = new double[10][];</code>
上面的代码创建了一个包含 10 个元素的数组,其中每个元素都是对双精度浮点数数组的引用。每个内部数组的大小可以不同。
选项 1 中的错误
以下代码会产生语法错误:
<code class="language-csharp">double[][] ServicePoint = new double[10][9];</code>
发生此错误是因为在数组创建时指定了内部数组的大小,而锯齿状数组不允许这样做。创建锯齿状数组的正确方法是仅指定外部数组的大小,然后分别为每个内部数组分配大小。
为统一数组行赋值
以下代码会产生错误:
<code class="language-csharp">double[,] ServicePoint = new double[10, 9]; double[] d = new double[9]; ServicePoint[0] = d;</code>
发生此错误是因为无法整体赋值给统一数组。必须为各个元素赋值。要为单个元素赋值,必须指定行和列索引:
<code class="language-csharp">ServicePoint[0, 0] = d[0]; ServicePoint[0, 1] = d[1]; // ... //</code>
以上是C#多维数组:何时使用`[] []`(锯齿)vs` [,]`(统一)?的详细内容。更多信息请关注PHP中文网其他相关文章!