如何使用不同的默认值初始化多维数组

kov*_*ike 11 .net c# arrays default-value multidimensional-array

我试图用-1初始化整数值的二维数组.当我创建一个新数组时,它会自动填充0.我知道我可以用2进行循环,但我想在构建数组时应该有一些方法可以做到这一点(所以我不需要通过它两次),所以不是0,而是插入提供的值.可能吗?如果不是在阵列的初始构建期间,是否还有其他时间或代码保存方式,或者我是否坚持使用2个循环?

Tra*_*eek 21

尝试这样的事情: int[,] array2D = new int[,] { { -1 }, { -1 }, { -1 }, { -1} };

或尺寸 int[,] array2D = new int[4,2] { { -1,-1 }, { -1,-1 }, { -1,-1 }, {-1,-1} };

  • 不确定-1为什么 - 这对小型2D阵列非常有效,在这种情况下是最佳选择.来自我的+1 ...(如果阵列很大,这会很快停止维护) (4认同)

Ree*_*sey 11

对于多维数组,循环很可能是最好的方法,除非数组足够小以直接在代码中初始化.

如果您使用的是锯齿状数组,则可以初始化第一个子数组,然后使用Array.Copy将这些值复制到每个其他子数组中.这仍然需要通过第一个子数组进行一次迭代,并通过N-1个外部数组进行一次循环,但复制操作将比循环更快.