首页 > 后端开发 > C++ > C#多维数组:何时使用`[] []`(锯齿)vs` [,]`(统一)?

C#多维数组:何时使用`[] []`(锯齿)vs` [,]`(统一)?

Mary-Kate Olsen
发布: 2025-01-24 11:32:09
原创
468 人浏览过

C# Multidimensional Arrays: When to Use `[][]` (Jagged) vs `[,]` (Uniform)?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板