C#:有没有办法定义未知等级的方法数组参数?

C#: Is there a way to define method array parameter of an unkown rank?

我想定义一个接受数组作为参数的方法,但这个数组可以是任何级别的。排名将由单独的参数指定。 replace/generalize 以下内容:

// one dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[] data) 
{
     /* code */
}

// two dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[][] data) 
{
     /* code */
}

// three dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[][][] data) 
{
     /* code */
}

// and so on...

鉴于我已经传入了每个维度的等级和大小,我应该能够概括我的方法中的代码。有什么好的方法可以达到我的要求吗?

您可以使用"System.Array"来管理任何等级的参数:

通过调用 Array.CreateInstance 创建数组实例。

这将为您提供数组 class 的一个实例。 调用 SetValue 为数组赋值。 使用 GetValue 检索数组的任何元素。

     public void WorkOnJaggedArray<T>(int rank, int[] dimensions, Array data) 
{
     /* code */
}