簡體   English   中英

鋸齒狀陣列與陣列陣列

[英]Jagged Array vs Array of Array

您如何看待它們之間的區別?

new object[][] { new object[] { "1" }, new object[] { "2" }, new object[] { "3" } }

new object[] { new object[] { "1" }, new object[] { "2" }, new object[] { "3" } }

我看到的唯一區別是方法的重載參數。

static void Arr(object[][] oa)

static void Arr(object[] oa)

也許 memory 的效率?

第一個是類型安全的; 第二個不是。

您的兩個 arrays 完全相同,除了第二個數組的類型為包含object s,而第一個數組必須包含object[] s(數組)。 因此,你可以寫

new object[] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }

而你不能寫

new object[][] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }

...因為DateTime.Now不是object[]

在實踐中,你應該盡量使用限制性最強的類型來防止你犯錯誤。
在您的情況下,您應該使用string[][]來確保您不能將DateTime.Now放在內部數組中。

不同之處在於,在第二個示例中,您可以在數組中包含類型為object的元素,而在第一個示例中,您可以包含object[]元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM