代码之家  ›  专栏  ›  技术社区  ›  BaltoStar

将交错数组初始化为零

  •  -2
  • BaltoStar  · 技术社区  · 7 年前

    有没有更详细的方法来初始化这个锯齿状数组?

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

    我不想要多维数组 int[,] 因为我以后可能需要分配给 int[2]

    2 回复  |  直到 7 年前
        1
  •  1
  •   TheGeneral    7 年前

    答案是否定的,你不能含蓄地 default 初始化时出现锯齿状数组。

    交错数组实际上只是一些东西的数组(在本例中是另一个数组),因此每个元素都必须由其自身初始化。

    我可以建议使用

    • 多维数组 相反,这反过来将是 defaulted 初始化时。

    • 无法将通用帮助程序写入 违约 并初始化

    • 扩展方法

        2
  •  1
  •   D Stanley    7 年前

    LINQ等效值仅为 轻微地 不那么冗长:

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