Entwickler-Ecke

Basistechnologien - List<string> schnell durchsuchen


kerstel - Mi 07.12.11 11:55
Titel: List<string> schnell durchsuchen
Hallo,

ich habe eine Collection die aus einer Datei befühlt wird. Der Count der Collection kann über eine Millionen gehen.

Ein Element der Collection sieht z.B. so aus:
4274P05.06.2010 05.06.2010 4274 664P4274P N

Gibt es eine Möglichkeit in der Collection direkt nach "4274P05.06.2010" bzw. nach den ersten 20 Zeichen des Elements? Mit einer Foreach Schleife und dem Vergleich ist das sehr langwierig.

lgr


Ralf Jansen - Mi 07.12.11 12:05

Läuft der ~Vergleich~ auf einen beliebigen Substring oder immer auf einen eindeutiger Teil deins Strings? Im letzteren Fall solltest du List<T> durch ein Dictionary<T,T> ersetzen und denn zu suchenden Anteil als Key verwenden.


kerstel - Mi 07.12.11 12:08

immer auf die ersten 20 Zeichen. Der Wert wird erst ermittelt, und dann wird das Element gesucht, bei dem die ersten 20 Zeichen diesem Wert entsprechen.

Versteh nicht was Du meinst mit Dictionary<T,T>


Ralf Jansen - Mi 07.12.11 12:14

http://msdn.microsoft.com/de-de/library/xfhwa508.aspx

Deine ersten 20 Zeichen benutzt du als Key deinen eigentlich string als Value. Ein Zugriff auf den Key erfolgt dann mit einem O(1) Aufwand. Also deutlich schneller als über alle Elemente zu iterieren -> O(n).


kerstel - Mi 07.12.11 12:16

ok verstanden, vielen dank