function(int[] me)
{
//Whatever
}
main()
{
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
function(numbers[1]);
}
所以在這裏,我想要int [] {3,4}傳遞給函數...但這不起作用。有沒有辦法做到這一點?有沒有辦法從C#中的多維數組中獲取數組?
function(int[] me)
{
//Whatever
}
main()
{
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
function(numbers[1]);
}
所以在這裏,我想要int [] {3,4}傳遞給函數...但這不起作用。有沒有辦法做到這一點?有沒有辦法從C#中的多維數組中獲取數組?
我想你想使用鋸齒陣列而不是2d陣列。這裏有更多的信息:
http://msdn.microsoft.com/en-us/library/aa288453%28VS.71%29.aspx
從該網頁的例子是:
INT [] [] =數字新INT [2] [] {新INT [] {2,3, 4},new int [] {5,6,7,8,9}};
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){}
他想傳遞一個int [],這就是問題所在。 – 2010-02-19 03:59:02
謝謝,「int [] {3,4}」令人困惑。現在已經修復了我的答案 – 2010-02-19 04:29:07
不,你不能這樣做,但你可以自己轉換它。就像是。
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}
嗯,我想我把這個問題字面上的太..然後呢? – 2010-02-19 06:12:53
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]);
}
這就是所謂的鋸齒狀排列(數組的數組)。如果你不能改變數字的定義,你需要編寫一個函數,可以使用
也許使用function(new int[] { 3, 4 });
?如果你寫一個實際的問題,它確實有幫助。
一種令人困惑的問題... – 2010-02-19 06:13:20
你告訴我,哥們。 – dunecat 2010-05-20 13:47:36