2016-08-12 13 views
0

私は1次元配列10個、つまり長さ5のすべてを持っています。それらを1つの大きな2次元配列に変換するにはどうすれば1次元配列しかできないのですか? 50細胞で?私はC#でそれほど良くはないので、これを行う簡単な方法があるかどうかわかりません。あるいは、各インデックスを個別に割り当てる必要があります。1次元配列で2次元配列を塗りつぶす

+0

この2D配列をどのように使用しますか? '2dArr [1]。[4]'のようなことをしようとしていますか?もしそうなら、おそらく 'Array of Array'を' var myArr = new int [] [] {arr1、arr2、arr3 ...} '' arrX'が 'int []'のようなものより良いでしょう。 – Luiso

+0

ギザギザのアレイの使用を検討してください。 – NPSF3000

+0

このJon Skeetの答えは、ちょっと違うユースケースを扱っていても面白いです(別の配列をそこで使われている配列のリストに変換することはできます):http://stackoverflow.com/a/9775057/172769 –

答えて

0
//assuming 1-D arrays are setup like so. 
int[] array1 = new int[5]; 
int[] array2 = new int[5]; 
... 
int[] array10 = new int[5]; 

//Convert to 2-D array: 
int[,] newarray = new int[10,5]; 
for (int i = 0; i < 5; i++) { 
    newarray[0, i] = array1[i]; 
    newarray[1, i] = array2[i]; 
    newarray[9, i] = array10[i]; 
} 

//using JaggedArrays 
int[][] jaggedArray = new int[10][]; 
jaggedArray[0] = array1; 
jaggedArray[1] = array2; 
... 
jaggedArray[9] = array10; 

10個の別個の1次元配列があると言うので、ループでこれを行うのは本当に良い方法ではありません。それらをすべて1つの1次元配列に変換してから、それを2次元配列に変換することもできますが、現在の設定では、これを行う必要があります。

このリンクをチェックアウトし、2-Dアレイにシングル1次元配列に変換するための:

C# convert 1D array to 2D

+0

' int [] [] 'は2次元配列ではなく、' int [、] 'は2次元配列です。 –

+0

ええ、私の悪い。 c#の構文を忘れてしまった。 –

+0

[中]のインデックスが間違っています。他のアレイを新しいアレイに割り当てることを試みるときに「予想される2」となる。私はこれを持っています。 'string [、]出力=新しい文字列[10,10]; output [0] = names; ' –

0

あなたは異なった答えであなたの質問に似たこのlinkを確認することができます。

関連する問題