function(int[] me)
{
//Whatever
}
main()
{
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
function(numbers[1]);
}
所以在这里,我想将int [] {3,4}传递给函数......但这不起作用。有没有办法做到这一点?
答案 0 :(得分:2)
我认为你想使用锯齿状数组而不是2d数组。这里有更多信息:
http://msdn.microsoft.com/en-us/library/aa288453%28VS.71%29.aspx
该页面的一个例子是:
int [] [] numbers = new int [2] [] {new int [] {2,3,4},new int [] {5,6,7,8,9}};
答案 1 :(得分:0)
int[] {3,4}
指的是位置,而不是数组并且包含int。你的功能应该是
function(int me)
{
//Whatever
}
这就是你如何获得价值并传递给你的功能
int valueFromLocation = numbers[3,4];
function(valueFromLocation )
{
//Whatever
}
修改强>
如果你在任何情况下都需要整个数组使用Jagged Arrays
int[][] jaggedArray =
new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
int[] array1 = jaggedArray[1];
int[] array1 = jaggedArray[2];
现在你可以按你想要的方式传递它
function(int[] array){}
答案 2 :(得分:0)
不,你不能这样做,但你可以自己转换它。像。的东西。
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {8, 6} };
List<int[]> arrays = new List<int[]>();
for (int i = 0; i < 3; i++)
{
int[] arr = new int[2];
for (int k = 0; k < 2; k++)
{
arr[k] = numbers[i, k];
}
arrays.Add(arr);
}
int[] newArray = arrays[1]; //will give int[] { 3, 4}
答案 3 :(得分:0)
function(int[] me)
{
//Whatever
}
main()
{
int[][] numbers = new int[3][] { new int[2] {1, 2}, new int[2]{3, 4}, new int[2] {5, 6} };
function(numbers[1]);
}
这称为锯齿状数组(数组数组)。如果你不能改变数字的定义,你需要编写一个可以
的函数答案 4 :(得分:0)
也许使用function(new int[] { 3, 4 });
?如果你写一个实际的问题,它确实有帮助。