Autor Beitrag
kerstel
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 07.12.11 11:55 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 07.12.11 12:14 
msdn.microsoft.com/d...ibrary/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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 07.12.11 12:16 
ok verstanden, vielen dank