2010-11-24 8 views
0

これはメインクラスの静的voidメソッドで行われています。 (クラスは入力に使用されています)。オブジェクトの値を取得しているArrayList

private static void Input(ArrayList list) 
{ 
    //other code... 

    Object b = new Object(number, hour, minutes, seconds); 
    list.Add(b) 
} 

次のオブジェクトには、オブジェクトを表示するための別の静的voidメソッドがあります。 私はそれらを数にグループ化しておき、同じ番号の時間、分、秒をお互いに表示したいと思っています。 それに対応する時間、分、秒のすべてを含む次の番号。

しかし、私は最初の配列の番号をどのように得ることができるのか分かりません。

どうすればこの情報にアクセスできますか?以下の構文は機能せず、この値を取得する方法がわかりません。

int var = array[0].number; //does not work 

また、このオブジェクトのインスタンスを再度作成するにはどうすればよいですか?私はもう新しいことはできない?

private static void Output(ArrayList list) 
{ 
    while (i < list.Count) 
    { 
     //keep track of current group (number) 
     //announce group 
     //... 
    } 
} 

よろしくお願いいたします。

答えて

0

これは、非一般的なコレクション(List<T>の代わりにArrayList)を使用しているためです。可能であれば、多くの場合、より一般的なコレクションを使用する方がよいでしょう。しかし、あなたがArrayListを使用するように強制している場合、あなたはキャストするんだ:

Foo foo = (Foo) list[0]; 
int x = foo.number; 
... 

を(私はあなたがあなた自身のクラスObject名前が付けられていない本当にと思っている...私はまた、使用しないことをお勧めしますvarはC#3以降のコンテキストキーワードです)。

+0

これらの名前は実際の説明のためだけのものです。キャスティングで試してから、ジェネリッククラスで試してみましょう。入力のための乾杯。 – Tonz

+0

@Tonz:将来、*標準ライブラリの一部ではない名前を使う価値があります。 –

+0

私はまだ番号自体にアクセスできませんが、やりますか? – Tonz

0

ArrayListの代わりにList<T>を使用してください。ここで、Tはあなたのオブジェクトの種類です。