我需要迭代一个维度任意的数组。这个迭代包括读取和写入操作,所以
GetEnumerator
方法不能使用。
Array.SetValue(object, int)
不能用于多维数组。
Array.SetValue(object, params int[])
需要过多的算术计算来迭代多维空间。它还需要动态调用来避开签名中的params
部分。
我想通过指针将数组固定并进行迭代,但是我找不到任何说明多维数组保证是连续的文档。如果它们在维度结尾处具有填充,则无法使用该方法。我也希望避免使用不安全的代码。
有没有一种简单的方法可以仅使用单个索引顺序地处理多维数组?