我有一个像这样的二维数组:
double[,] results = new double[100,100];
我想将数组的每个一维部分作为参数传递给函数。
for (int i = 0; i < 100; i++){
cool_function (results[???], 10);
}
我如何在 C# 中做到这一点?
我有一个像这样的二维数组:
double[,] results = new double[100,100];
我想将数组的每个一维部分作为参数传递给函数。
for (int i = 0; i < 100; i++){
cool_function (results[???], 10);
}
我如何在 C# 中做到这一点?
如果不复制数组的相应部分,您将无法做到这一点。
否则,您可以使用double[][]
. 初始化:
double[][] results = new double[100][];
for(int i = 0; i < 100; i++)
results[i] = new double[100];
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 };
如果您的意思是要为大小为y的x数组调用函数的数组myarray[x][y] ,那么您只需要以下代码:
int i;
for (i = 0; i < 100; i++)
{
cool_function(array[i], 10);
}
您可以通过使用锯齿状数组Type[][]
而不是Type[,]
. 在这种情况下,您可以通过array[index]
. 否则,您将不得不将二维数组与感兴趣的子数组的索引一起传递并在调用的方法中执行索引,或者创建感兴趣的子数组的副本。