有没有办法从C#中的多维数组中获取数组?

时间:2010-02-19 03:48:59

标签: c# multidimensional-array

function(int[] me)
{
    //Whatever
}

main()
{
    int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };    
    function(numbers[1]);
}

所以在这里,我想将int [] {3,4}传递给函数......但这不起作用。有没有办法做到这一点?

5 个答案:

答案 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 });?如果你写一个实际的问题,它确实有帮助。