Индексация в массивы произвольного разряда в C#

Я должен выполнить итерации по массиву произвольного разряда. Это и для чтения и для записи, таким образом, GetEnumerator не будет работать.

Array.SetValue(object, int) не работает над многомерными массивами. Array.SetValue(object, params int[]) потребовал бы чрезмерной арифметики для итерации через многомерное пространство. Это также потребовало бы, чтобы динамический вызов двигался params часть подписи.

Я испытываю желание прикрепить массив и выполнить итерации по нему с указателем, но я не могу найти документацию, в которой говорится, что многомерные массивы, как гарантируют, будут непрерывны. Если у них будет дополнение в конце размера затем, то это не будет работать. Я также предпочел бы избегать небезопасного кода.

Существует ли простой способ последовательно обратиться к многомерному массиву только с помощью единственного индекса?

5
задан µBio 4 August 2010 в 18:38
поделиться