Domino 9 und frühere Versionen > ND8: Entwicklung

Objekt aus Array löschen

(1/1)

Gutierrez:
Hallo liebe Notes-Liebenden ;-)


Kurze Frage:

Ich habe ein Array mit Objekten:

Dim Aepfel() As Apfel

Redim Aepfel(0)
Set Aepfel(0) = New Apfel

Redim Preserve Aepfel(1)
Set Aepfel(1) = New Apfel

Redim Preserve Aepfel(2)
Set Aepfel(2) = New Apfel

Redim Preserve Aepfel(3)
Set Aepfel(3) = New Apfel


Jetzt möchte ich einen Apfel mit Index = 1 löschen, Apfel Index = 2 soll aber auf die Position von dem gelöschten Apfel nach vorne rücken, sowie alle folgenden Apfel-Objekte. Zum Schluß wird das Array um ein Element verkleinert.

Wie würdet ihr das machen?



Peter Klett:
Im Prinzip so:


--- Code: ---deletenr = 1
For i = deletenr To Ubound (Aepfel) - 1
   Set Aepfel (i) = Aepfel (i + 1)
Next i
Redim Preserve Aepfel (Ubound (Aepfel) - 1)

--- Ende Code ---

Tode:
Brauchst Du denn wirklich den direkten Zugriff über die Indizes? Wenn nicht, dann würde ich über eine Liste arbeiten, die ist in diesem Fall viel Flexibler...


--- Code: ---Class Apfel
      Public strIdentifier as String
      Sub New()
        Me.strIdentifier = "Irgendeineindeutigeridentifier"
      End Sub
    End Class

Dim tmpApfel as Apfel
Dim lAepfel List as Apfel

Set tmpApfel = New Apfel()
Set lAepfel( tmpApfel.strIdentifier ) = tmpApfel
--- Ende Code ---

Ein Element löschen geht dann einfach über
--- Code: ---Erase lAepfel( irgendeinIdentifier )
--- Ende Code ---


Gutierrez:
OK, im Prinzip habe ich es auch so gelöst wie Peter, nur mit paar Zeilen mehr.

Die Idee mit der Liste (ich mag Listen!) ist mir noch nicht gekommen, aber interessant!

Vielen Dank euch beiden!

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln