1. 程式人生 > >C#二維陣列拷貝到另一個二維陣列

C#二維陣列拷貝到另一個二維陣列

網上找了下,沒有找到關於二維陣列拷貝到二維陣列的相關內容。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表示一行中共有多少列。