有没有那么冗长的方法来初始化这个锯齿状的数组?
var r = new int[a.Length][];
for (int i=0; i<a.Length; i++)
{
r[i] = new int[2];
}
我不需要多维数组int[,]
,因为以后可能需要分配给int[2]
以外的其他元素
答案 0 :(得分:1)
答案是否定的,您不能在初始化时隐式default
一个锯齿状的数组。
锯齿状的数组实际上只是一个东西的数组(在这种情况下是另一个数组),因此每个元素都必须由其自身初始化。
我可以建议使用
一个多维数组,它将在初始化时依次为defaulted
。
无法为default
编写通用帮助程序并初始化
或扩展方法
答案 1 :(得分:1)
Linq等效项仅稍微较不冗长:
int[][] r = Enumerable.Range(1,a.Length)
.Select(i => new int[2])
.ToArray();