Hallo,
Ich muss feststellen, ob sich Strings unterscheiden oder nicht. Dabei sind diese Strings durchaus längere Textblöcke (mehrere tausend Zeichen). Mir sind folgende Lösungen eingefallen, und möchte gerne wissen, welche Ihr davon für am performantesten haltet...
Nochmal zur Klarstellung: Ich brauche als Rückgabe nur true oder false. Mich interessiert weder, was unterschiedlich ist, noch die Position der ersten Unterscheidung o.ä.
Viele Grüße,
Stephan
string.Equals oder ==
bei "nur" mehreren tausend zeichen würde ich mir um Performance keine gedanken machen
Hallo steschu,
bei dem, was über das Szenario bekannt ist, also einem einfachen Vergleich von zwei Strings, klingt mir das sehr nach premature optimization, die ja bekanntlich "the root of all evil" ist.
Was anders ist es höchstens, wenn du alle Strings mit allen anderen vergleichen musst (um in einer Liste von Strings Duplikate zu finden). Das würde man darüber lösen, dass man alle Strings nach und nach mit Add einem HashSet hinzufügt und anhand des Rückgabewerts erkennt, ob der gerade hinzugefügte String schon vorhanden war.
herbivore
Hallo steschu,
schau dir auch String.Intern Method (System)* an und messe die Varianten einfach durch, dann wirst du sehen ob es gravierende Unterschiede gibt od. ob es doch eine "premature optimization" ist. Das Ergebnis der Messung kannst du dann auch bitte hier posten.
* nach dem Internen einen Vergleich per object.ReferenceEquals durchführen um die Identitäten der Strings im String-Pool zu vergleichen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"