So wie ich das sehe, willst du eine Liste durchgehen und jeden Eintrag per 'Pos' o.ä. durchsuchen.
Das bringt nicht viel, egal wie schnell das Pos ist, da die Strings ziemlich kurz sind und da die optimierten Algorithmen noch nicht richtig greifen.
Die schnellen String-Matching-Algorithmen spielen ihre Stärken erst bei langen Strings aus.
Du könnstes also deine Liste anstatt in 600.000 einzelnen Strings in einem einzigen sehr langen String vorhalten. Das Suchen würde also dann nur in einem String stattfinden.
Zufällig (
) habe ich da etwas für Dich. Ich hab das mal benötigt, um in einer Adressliste mit 1 Mio Einträgen in Echtzeit ('while you type') passende Adressen zu suchen. Ich breche allerdings nach 500 Einträgen ab, weil sonst eine merkliche Verzögerung eintritt. Je länger der Suchtext, desto schneller das Teil.
Zaubern kann es allerdings auch nicht.