2016-09-23 13 views
0

2次元配列[、]があり、配列[0]行を配列[1]行と同じに設定したいとします。2次元配列の行を簡単に結合する

私はarray [0] = array [1]はすべての行0変数を1行変数と同じに設定すると考えました。しかし、それは動作しませんでした。

ので、私は、これを試してみました

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

が、それはエラー "範囲外" を取得します。

私はこれを行う非常にエレガントな方法が不足しているように感じる、任意の助けをいただければ幸いです。

+2

あなたのための声明の中でitemListの[0] .LENGTHを試してみてください。 – openshac

+0

二次元配列[、]と[] []の2種類があります。正しいタイプを使用していることを確認してください。 – jdweng

答えて

1

明らかに、ループは範囲外になります。 2次元配列、itemList.Length = number of rows * number of columns

については

あなたは次のことを試してみることができます:値をプリントアウトすることにより

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

チェック:

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

・ホープ、このことができます!

+0

それは完璧な、ありがとう、私は2D配列の長さがそのように測定されたかわからなかった。 – Stephen

1

最初の項目数と itemList.GetLength(1)は、第2の項目のための2Dアレイのカウントを取得する(0)itemList.GetLengthを試す[itemListのがint値が含まれていることを想定]。

のようにコードを変更します。

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