2011-02-19 1 views
1

オブジェクトの配列を使用している場合、インデクサーを使用するにはどうすればよいですか?オブジェクトの配列のために行われるべきである何オブジェクトの配列でインデクサーを使用するにはどうすればよいですか?

static void Main(string[] args) 
{ 
    MYInd mi = new MYInd(); 
    mi[1] = 10; 
    Console.WriteLine(mi[1]); 
    mi[2, 10] = 100; 
    Console.WriteLine(mi[2]); 

    Console.WriteLine(mi[3, 10]); 

:単一のオブジェクトの場合

MYInd[] mir = new MYInd[3]; 

各オブジェクトとインデクサーをどのように使用できますか?あなたはあなたがワンステップでそれを行うことができ、アレイから特定のMYIndを選び出すしたい場合は、

foreach(MYInd mi in mir) 
    Console.WriteLine(mi[3, 10]); 

を行う反復処理したい場合は

答えて

2

あなたは、オプションのカップルを持っている

Console.WriteLine(mir[1][3, 10]); // [1] picks out one object from the array 

または2のステップ

MYInd mi = mir[1]; // pick out one object from the array 
Console.WriteLine(mi[3, 10]); 
+0

感謝:

あなたは、配列と要素の両方を初期化する必要があることを忘れないでください)左結合性と呼ばれるが、私はわからないんだけど:-)です。しかし、私はこれを試して、それは私に例外を与える。例外:オブジェクトリファレンスがオブジェクトのインスタンスに設定されていません –

+0

@Thomas、配列自体を初期化しましたが(あなたの質問に書いた 'new'キーワードで)、オブジェクト自体は初期化していない可能性があります。配列を作成した後、 'for(int i = 0; i mpontillo

+0

ありがとうございました。大きな助けをしました。 –

0
mir[0][1, 2] 

しかしとして、あなたはそれを想像することができます:[演算子は左から右に解析されるため、括弧は((1 + 2)+ 3 ==のように1 + 2 + 3は私が考える必要はありません

(mir[0])[1, 2] 

返信用

var mir = new MyInd[5]; 
for (int i = 0; i < mir.Length; i++) 
{ 
    mir[i] = new MyInd(); 
} 
+0

返事をありがとう。しかし、私はこれを試して、それは私に例外を与える。例外:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 –

+0

配列と配列要素を初期化する必要があります。 var mir = new MyInd [5]; for(int i = 0; i xanatos

+0

それは働いた。たくさんありがとう。 –