如何将二维数组的一部分作为参数传递给函数?

时间:2013-01-27 22:51:01

标签: c#

我有一个像这样的二维数组:

double[,] results = new double[100,100];

我想将数组的每个维度部分传递给作为参数的函数。

for (int i = 0; i < 100; i++){
     cool_function (results[???], 10);
} 

如何在C#中执行此操作?

4 个答案:

答案 0 :(得分:2)

如果不复制数组的相应部分,则无法执行此操作。

否则,您可以使用double[][]。要初始化:

double[][] results = new double[100][];
for(int i = 0; i < 100; i++)
    results[i] = new double[100];

答案 1 :(得分:2)

source 锯齿状数组是数组数组。锯齿状数组的元素是其他数组。

声明锯齿状阵列

锯齿状阵列的声明涉及两个括号。例如,以下代码片段声明了一个锯齿状数组,该数组包含三个数组项。

int[][] intJaggedArray = new int[3][];

以下代码段声明了一个锯齿状数组,其中包含两个数组项。

string[][] stringJaggedArray = new string[2][];

初始化锯齿状阵列

在使用锯齿状数组之前,必须初始化其项目。以下代码段初始化锯齿状数组;第一个项目的整数数组有两个整数,第二个项目的整数数组有4个整数,第三个项目的整数数组有6个整数。

// Initializing jagged arrays
intJaggedArray[0] = new int[2];
intJaggedArray[1] = new int[4];
intJaggedArray[2] = new int[6];

我们还可以通过提供数组项的值来初始化锯齿状数组的项。以下代码段在声明期间直接初始化项目数组的项目。

// Initializing jagged arrays
intJaggedArray[0] = new int[2]{2, 12};
intJaggedArray[1] = new int[4]{4, 14, 24, 34};
intJaggedArray[2] = new int[6] {6, 16, 26, 36, 46, 56 };

答案 2 :(得分:1)

如果你想要一个数组 myarray [x] [y] 你想要为 x 大小 y 的数组调用一个函数那么你需要的只是以下代码:

int i;

for (i = 0; i < 100; i++)
{
    cool_function(array[i], 10);
}

答案 3 :(得分:1)

您可以使用锯齿状数组Type[][]代替Type[,]来执行此操作。在这种情况下,您只需传递array[index]即可。否则,您必须将二维数组与感兴趣的子数组的索引一起传递,并在被调用的方法中执行索引,或者创建感兴趣的子数组的副本。