2010-11-24 20 views
0

Dies wird in einer statischen Void-Methode in der Hauptklasse vorgenommen. (Klasse wird zur Eingabe verwendet).ArrayList Abrufen des Werts des Objekts

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

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

Als nächstes habe ich eine andere statische void-Methode, um die Objekte darin anzuzeigen. Die Sache ist, ich möchte sie auf der Nummer gruppieren, und dann alle Stunden, Minuten und Sekunden für die gleiche Anzahl untereinander anzeigen. Dann folgende Nummer (n) mit allen dazugehörigen Stunden, Minuten und Sekunden.

Aber ich bin mir nicht sicher, wie ich die Nummer zum Beispiel das erste Array bekommen kann, und 2. und so weiter.

Wie kann ich darauf zugreifen? Die folgende Syntax funktioniert nicht und ist nicht sicher, wie diese Werte abgerufen werden.

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

Auch wie mache ich eine Instanz dieses Objekts wieder? Ich kann nicht wieder neu verwenden, kann ich?

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

Grüße.

Antwort

0

Dies liegt daran, dass Sie eine nicht generische Sammlung verwenden (ArrayList anstelle von List<T>). Wenn Sie können, wäre es viel besser, eine generische Sammlung zu verwenden. wenn Sie ArrayList gezwungen sind, jedoch zu verwenden, haben Sie zu werfen bekam:

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

(Ich hoffe, Sie haben nicht wirklich Ihre eigene Klasse mit dem Namen Object ... Ich habe auch gegen die Verwendung der empfehlen würde Name var als das kontextuelle Schlüsselwort ab C# 3.)

+0

Die Namen sind in der Tat nur zur Veranschaulichung. Werde versuchen mit dem Casting und danach mit einer generischen Klasse zu machen. Prost für die Eingabe. – Tonz

+0

@Tonz: In Zukunft lohnt es sich, Namen zu verwenden, die * nicht * Teil der Standardbibliothek sind. –

+0

Wird tun, obwohl ich immer noch nicht auf die Nummer selbst zugreifen kann? – Tonz

0

Verwenden Sie anstelle der ArrayList eine List<T>, wobei T Ihr Objekttyp ist.

Verwandte Themen