Ciao
sto implementando un programma che deve effettuare statistiche sulle parole presenti in un documento.
Tralasciando il codice che carica il documento e legge tutte le parole presenti al suo interno (già realizzato e funzionante), ho dei problemi per le statistiche.

Attualmente, la funzione che legge le parole dal documento, utilizza la funzione Add della classe ArrayList per aggiungere ogni parola:
codice:
output.Add(LCase$(word.ToString))
dove output è un oggetto della classe ArrayList e word è un oggetto della classe StringBuilder.

L'oggetto output viene restituito alla funzione che deve effettuare le statistiche: questa funzione, per ogni parola presente nell'ArrayList restituito, deve verificare se ne sono presenti altre ed incrementare una "variabile contatore", quindi aggiungere la parola e le relative occorrenze ad un'ulteriore struttura dati (per esempio una SortedList).

Qual è il problema?
L'efficienza
Ho testato il programma con un testo contenente circa 200mila parole e al momento di effettuare le statistiche impiega poco più di 200 secondi.

Qualche suggerimento?

Grazie