我有一个像这样的二维数组:
double[,] results = new double[100,100];
我想将数组的每个维度部分传递给作为参数的函数。
for (int i = 0; i < 100; i++){
cool_function (results[???], 10);
}
如何在C#中执行此操作?
答案 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]
即可。否则,您必须将二维数组与感兴趣的子数组的索引一起传递,并在被调用的方法中执行索引,或者创建感兴趣的子数组的副本。