如何扩展锯齿数组

本文关键字:数组 扩展 何扩展 | 更新日期: 2023-09-27 18:02:09

我尝试用Array.AddRange扩展锯齿数组,但没有成功。我不知道为什么它不工作,我没有异常但是我的数组的范围没有改变。下面是我使用的代码:

public World( ushort[][][] worldMatrice)
{
    // OldWith = 864
    ushort OldWidth = (ushort)worldMatrice.GetLength(0);
    // Extend the matrice to (1024) => only the first level [1024][][]            
    worldMatrice.ToList().Add(new ushort[1024- OldWidth][]);
    // NewWidth = 864 , and should be 1024 ...
    ushort NewWidth = worldMatrice.getLenght(0);
}

如何扩展锯齿数组

https://msdn.microsoft.com/en-us/library/bb397694.aspx

Array. addrange()不会改变数组的维度,Array. addrange()不会改变数组的维度。Length将始终返回数组所能容纳的最大元素数,而不是数组中非空元素的总数。

如果你想改变数组的维度,你可能需要将旧数组的值转移到一个你想要的维度的新数组中。

int[] newArray = new int[1024];
Array.Copy(oldArray, newArray, oldArray.Length);

要获取数组中非空元素的数量,使用类似

的内容
int count = array.Count(s => s != null);

您没有保存输出。试试这个:

    worldMatrice = worldMatrice.ToList().Add(new ushort[1024- OldWidth][]).ToArray();

This

worldMatrice.ToList()

会创建一个数组的副本然后你什么也没做