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

时间:2016-12-23 01:49:06

标签: c# jagged-arrays

我想定义一个接受数组作为参数的方法,但是这个数组可以是任何等级。等级将由单独的参数指定。替换/概括以下内容:

// 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...

鉴于我已经传入了每个维度的等级和大小,我应该能够概括我的方法中的代码。有没有一种很好的方法来实现我所要求的目标?

1 个答案:

答案 0 :(得分:2)

您可以使用“System.Array”来管理任何级别的参数:

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

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

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