2011-11-15 11 views

答えて

7

構文が若干異なります。

bool[,] something = new bool[5,10]; 
// Then, we can do this, since indexes do not refer to null instances: 
something [3,7] = true; 

それとも、C#の3.0+を使用している場合、あなたは少し宣言簡素化することができます:

//Doesn't work for fields. 
var something = new bool[5,10]; 

多次元配列です。詳細についてはMSDNを参照してください。

+0

は、目の上の方が簡単な場合があります5つの配列は同じ長さを持っている必要はありません'var'で) –

+0

@RussCam - 良い点ですが、できるだけ元のコードに近づけようとしていました。 (それは私が知っているすべての分野でもあり得る)。 – vcsjones

+0

私は理解しています。私はOPがキーワードについて知っているのだろうか? –

3

あなたの質問の構文は、C#(配列の配列)のギザギザの配列を提供します。これらは、多次元配列(多次元索引付けを使用して、メモリに連続して格納された要素を持つ単一の配列)とは異なります。

私はJavaで多くの作業をしていませんが、Javaの多次元配列はC#の多次元配列ではなく、C#のギザギザの配列に似ています。配列の配列を宣言して作成するには

、あなたがこれを行うだろう:

bool[][] something = new bool[5][]; 

これは、要素タイプbool[]である5要素の配列を作成します。要素を個別に作成する必要があります(または、おそらく他の場所から参照を取得する必要があります)。あなたはそれらすべてが長い10個の要素になりたい場合は、当然の代わりにこれを行うことができます

for (int i = 0; i < something.Length; i++) 
    something[i] = new bool[GetLengthForElement(i)]; 

for (int i = 0; i < something.Length; i++) 
    something[i] = new bool[10]; 
関連する問題