Passt scho.
Ist aber ein interessantes Problem. Wenn ich nachher noch Muse finde, werde ich mich mal dranhocken und spaßeshalber ne rekursive Version schreiben.
Aber nochmal zurück zum Problem:
Wie genau machst du es?
Liest du die
DB einmal beim Start des Programmes ein und schließt die
DB erst am Ende wieder?
Oder liest du für jedes Einfügen eines neuen Items die
DB komplett neu in das Programm ein?
Im zweiten Fall kommst du nämlich um das ständige Sortieren der Daten wohl nicht rum. Wenn du allerdings die Indizes nur einmal holst und sie danach in der ListBox behältst (Durch das Einfügen der neuen Indizes in die ListBox bleibst du ja aktuell), kannst du dir das Neusortieren sparen. Entweder, du stellst die Eigenschaft Sorted der ListBox auf true (dann wird jedes Item automatisch richtig einsortiert - was das an Zeit schluckt, weiß ich allerdings nicht) oder du fügst jedes Item mit Insert direkt an der richtigen Stelle ein (diese Stelle sollte je in deinem Fall - wie gesagt - in einer ListBox immer "Zahl-1" entsprechen). Bei einem Array müßtest du dir die Insert-Funktion erst selbst implementieren, was aber auch kein Problem sein sollte.
//Edit:
Insert ist eine Methode der ListBox, der du wie bei Add den String, aber zusätzlich noch den Index, an dem eingefügt werden soll, als Parameter übergibst. Soviel nur mal zur Erläuterung.