Forum: PC-Programmierung c#: Objekt aus ArrayList holen


von Matthias S. (da_user)


Lesenswert?

Hi,

ich habe ein Problem, wahrscheinlich ein 
Anfänger-&-wenigprogrammierer-problem, aber ich bin mir sicher, ihr 
könnt mir etwas auf die Sprünge helfen.

Ich erstelle eine Arrayliste und befülle diese mit Objekten vom Typ 
"Fahrpunkte":
1
{...}
2
ArrayList Punkteliste = new ArrayList();
3
4
{...}
5
Fahrpunkt pk = new Fahrpunkt();
6
Punkteliste.Add(pk);

Nun will ich mir einen bestimmten Fahrpunkt aus der Liste holen:
1
Fahrpunkt aktuellerFahrpunkt = new Fahrpunkt();
2
aktueller Fahrpunkt = Punkteliste[i];

Hier mekert jetzt der Compiler, dass er den Typen 'object' nicht 
implizit in [...].Fahrpunkt umwandeln kann, es wäre eine explizite 
Umwandlung vorhanden.

Ich weiß zwar, wie ich diverse einfache Variablentypen (int, byte, 
real,..) umwandle (Convert.To), aber wie wandle ich den ein 'object' in 
einen selbsterstellten Typen um?

Danke schonmal für's durchlesen ;-)
Matthias

von Peter II (Gast)


Lesenswert?

> Fahrpunkt aktuellerFahrpunkt = new Fahrpunkt();
> aktueller Fahrpunkt = Punkteliste[i];

also hier ist schon mal ein Leerzeichen zu viel! Also nicht der echte 
code.

und warum erst ein objekt anlegen, was du danach gleich überschreibst?
1
Fahrpunkt aktuellerFahrpunkt = Punkteliste[i];

sollte es eigentlich tun.

von I. Gel (Gast)


Lesenswert?

Matthias S. schrieb:
>
1
> Fahrpunkt aktuellerFahrpunkt = new Fahrpunkt();
2
> aktueller Fahrpunkt = Punkteliste[i];
3
>
-->
1
Fahrpunkt aktuellerFahrpunkt = (Fahrpunkt)Punkteliste[i];

von Peter II (Gast)


Lesenswert?

I. Gel schrieb:
> Fahrpunkt aktuellerFahrpunkt = (Fahrpunkt)Punkteliste[i];

stimmt, er hat eine typelose liste. So etwas macht man doch nicht mehr.
1
List<Fahrpunkt> Punkteliste = new List<Fahrpunkt>();


ist die bessere Lösung, casts sind böse.

von Markus B. (markusborti)


Lesenswert?

Zum vorpost ist wohl noch hinzuzufügen,
Dass du explizit casten musst.
1
Fahrpunkt aktuellerFahrpunkt = (Fahrpunkt) Punkteliste[i];

Du könntest aber such auf die genetische liste zurückgreifen (das wurde 
ich tun).

Ansonsten: kann man ArrayList mit [] aufrufen?
Ich dachte, dass es al.Item(stelle) ist..

Edit: am Smartphone ist man einfach zu langsam xD

von Frank M. (aktenasche)


Lesenswert?

arraylisten sollte man eigentlich nicht mehr verwenden. List<> ist 
performanter und typsicher.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.