Entwickler-Ecke

Basistechnologien - Positionen in einer ArrayList


Cäptin Pommes - Di 26.01.10 19:49
Titel: Positionen in einer ArrayList
Hallo,

wie isn das wenn ich etwas in einer Array List an Position 15 packe obwohl sagen wir bisher nur bis position 5 elemente drin sind, werden dann neue elemente die ich einfach nur mit add hinzufüge ab position 6 rangehangen oder ab position 17?


Kha - Di 26.01.10 20:17

Das geht überhaupt nicht - probier es doch mal aus, die von Insert geworfene Exception dürfte relativ aufschlussreich sein.
Erst einmal kannst du ArrayList gleich aus deinem Gedächtnis löschen und durch List<T> ersetzen ;) .
Beide Klassen können nur zusammenhängende Index-Bereich von 0 bis n darstellen. Die Zwischenräume könntest du zwar mit null auffüllen, ein Dictionary<int, T> scheint mir aber passender zu sein.


Cäptin Pommes - Di 26.01.10 20:22

achso gut dann hat sich das natürlich erledigt ^^ danke.

Aber wies die Array List vergessen und durch List<T> ersetzten?


JüTho - Di 26.01.10 20:31

user profile iconCäptin Pommes hat folgendes geschrieben Zum zitierten Posting springen:
achso gut dann hat sich das natürlich erledigt ^^ danke.

Aber wies die Array List vergessen und durch List<T> ersetzten?

Weil die ArrayList nur allgemein mit dem Typ object arbeitet, also jedes Element, das benutzt werden soll, erst in den gewünschten/passenden Typ konvertiert werden muss. Bei der List<T> legst du fest, mit Daten welchen Typs T sie gefüllt werden soll.

Jürgen


Cäptin Pommes - Di 26.01.10 20:36

Also muss ich vorher sagen was <T> sein soll für ein typ und dann kann ich in der List diese typen reinpacken oder was?


jaenicke - Di 26.01.10 21:31

Genau richtig, und dann kann da auch nicht aus Versehen was anderes drin landen und beim Auslesen Probleme machen.


Cäptin Pommes - Di 26.01.10 21:38

Ok ich hab das auch gleich mal gemacht und jetzt versuch ich gerade auf ein element zuzugreifen ich will den Index ansprechen aber das geligt mir nich welche is dafür die richtige methode?

also in meiner list befinden sich arrays und nun will ich in mein temp[] array die werte aus einem array aus der Liste speichern


jaenicke - Di 26.01.10 21:44

Es gibt z.B. die Methode Copy, mit der du einen Bereich des Arrays kopieren kannst. Und einzelne bekommst du direkt mit eckigen Klammern mit dem Index darin.


Nemag - Mi 27.01.10 17:11

Das du dein Objekt an einen bestimmten Index hinzufügen willst hat doch bestimmt was zu sagen oder?

Wenn du von vornherein weißt wie groß deine Liste wird, kannst du auch ein Array benutzen.


C#-Quelltext
1:
DeinObjekt[]                    


Oder was hat es mit dem Setzen deines Eintrag an einer bestimmt Stelle auf sich?