2016-09-23 68 views
0

我有一个二维数组[,],我想设置数组[0]行等于数组[1]行。简单的方法来合并二维数组中的行

最初我以为array [0] = array [1]会将所有第0行变量设置为等于第1行变量。但它没有奏效。

,所以我想这一点,

for (int i = 0; i < itemList.Length; i++) 
{ 
    itemList [0,i] = itemList [1,i]; 
} 

但它得到 “超出范围” 的错误。

我觉得我错过了这样做的一个非常优雅的方式,任何帮助将不胜感激。

+2

尝试itemList中[0]。长度在你的发言。 – openshac

+0

您可以有两种类型的二维数组[,]和[] []。确保你使用的是正确的类型。 – jdweng

回答

1

很明显,循环会超出界限。打印出的值

int rowLength = itemList.GetLength(0); 
int colLength = itemList.GetLength(1); 
for (int j = 0; j < colLength; j++) 
{ 
    itemList[0, j] = itemList[1, j]; 
} 

检查:

对于一个二维数组,itemList.Length = number of rows * number of columns

您可以尝试以下

for (int i = 0; i < rowLength; i++) 
{ 
    for (int j = 0; j < colLength; j++) 
    { 
     Console.Write(string.Format("{0} ", itemList[i, j])); 
    } 
    Console.Write(Environment.NewLine + Environment.NewLine); 
} 

希望这有助于!

[假定itemList中包含int值]

+0

多数民众赞成在完美的,谢谢你,我不知道二维数组的长度是这样测量的。 – Stephen

1

尝试itemList.GetLength(0),以获得第一项计数和 itemList.GetLength(1)第二项中的2D阵列计数。

修改代码,如:

for (int i = 0; i < itemList.GetLength(1); i++) { 
     itemList [0,i] = itemList [1,i]; 
    }