簡體   English   中英

將鋸齒狀數組初始化為零

[英]init jagged array to zeros

有沒有更簡潔的方法來初始化這個鋸齒狀數組?

    var r = new int[a.Length][];
    for (int i=0; i<a.Length; i++)
    {
        r[i] = new int[2];
    }

我不想要一個多維數組int[,]因為我以后可能需要分配給int[2]以外的一些元素

答案是否定的,您不能在初始化時隱式default一個鋸齒狀數組。

鋸齒狀數組實際上只是一個數組(在這種情況下是另一個數組),因此每個元素都必須由它自己初始化。

我可以建議使用

  • 相反,多維數組,這將在初始化時defaulted

  • 如果您無法編寫通用幫助程序來default和初始化

  • 擴展方法

Linq 的等價物只是稍微不那么冗長:

int[][] r = Enumerable.Range(1,a.Length)
                      .Select(i => new int[2])
                      .ToArray();

暫無
暫無

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

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