2010-02-19 90 views
3
function(int[] me) 
{ 
    //Whatever 
} 

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

所以在這裏,我想要int [] {3,4}傳遞給函數...但這不起作用。有沒有辦法做到這一點?有沒有辦法從C#中的多維數組中獲取數組?

+0

一種令人困惑的問題... – 2010-02-19 06:13:20

+0

你告訴我,哥們。 – dunecat 2010-05-20 13:47:36

回答

0

int[] {3,4}指的是位置,而不是一個數組,並保存一個int。你的功能應該是

function(int me) 
{ 
    //Whatever 
} 

這是你將如何獲得價值,並傳遞給你的函數

int valueFromLocation = numbers[3,4]; 

    function(valueFromLocation) 
    { 
     //Whatever 
    } 

編輯:

,如果您需要在任何情況下,整個陣列使用交錯數組

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){} 
+0

他想傳遞一個int [],這就是問題所在。 – 2010-02-19 03:59:02

+0

謝謝,「int [] {3,4}」令人困惑。現在已經修復了我的答案 – 2010-02-19 04:29:07

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} 
+0

嗯,我想我把這個問題字面上的太..然後呢? – 2010-02-19 06:12:53

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]); 
} 

這就是所謂的鋸齒狀排列(數組的數組)。如果你不能改變數字的定義,你需要編寫一個函數,可以使用

0

也許使用function(new int[] { 3, 4 });?如果你寫一個實際的問題,它確實有幫助。

相關問題