に似たC#での多次元配列の操作:は、私たちがこれを行うことができますJavaではJavaの
bool[][] something = new bool[5][10];
// Then, we can do this, since indexes do not refer to null instances:
something [3][7] = true;
しかし、同じことがC#でコンパイルしていないようです。 C#でこれを実行するのと同等の方法はありますか?
に似たC#での多次元配列の操作:は、私たちがこれを行うことができますJavaではJavaの
bool[][] something = new bool[5][10];
// Then, we can do this, since indexes do not refer to null instances:
something [3][7] = true;
しかし、同じことがC#でコンパイルしていないようです。 C#でこれを実行するのと同等の方法はありますか?
構文が若干異なります。
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を参照してください。
C#sの構文はそれほど多少異なります。非常に速いGoogleはthis MSDN pageを投げた。
あなたの質問の構文は、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];
は、目の上の方が簡単な場合があります5つの配列は同じ長さを持っている必要はありません'var'で) –
@RussCam - 良い点ですが、できるだけ元のコードに近づけようとしていました。 (それは私が知っているすべての分野でもあり得る)。 – vcsjones
私は理解しています。私はOPがキーワードについて知っているのだろうか? –