首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板