C#二維陣列拷貝到另一個二維陣列
阿新 • • 發佈:2019-02-12
網上找了下,沒有找到關於二維陣列拷貝到二維陣列的相關內容。Array.Copy的使用方法中一般給的例子是一維陣列。這裡解釋一種拷貝二維陣列的方法,使用的仍然是Array.Copy的方法。
有如下陣列:
a=[1 2 3 4;
5 6 7 8;
9 10 11 12];
要把這個陣列的第一行和第三行拷貝到一個新的陣列中,即有:
b=[1 2 3 4;
9 10 11 12];
程式碼如下:
int[,] a=new int[,]{{1, 2 ,3,4},{5,6,7,8},{9,10,11,12}};
int LogicNum = a.GetLength(0) / 3;
int FrameNum = a.GetLength(1);
int[,] b = new int[2*LogicNum,FrameNum];
Array.Copy(a,0,b,0,LogicNum*FrameNum);
Array.Copy(a, 2 * LogicNum * FrameNum, b,LogicNum * FrameNum, LogicNum * FrameNum);
關鍵之處在於,二維陣列的下標,可以通過a[iRow,iCol]索引,其中iRow表示行號,iCol表示列號,也可以通過a[iRow*ColNum+iCol]索引,即看成一維陣列,ColNum表示一行中共有多少列。