Der beste Weg 2 Strings zu vergleichen, ohne den Fall der Buchstaben zu beachten, ist die Verwendung der statischen Methode String.Equals, die einen ordinalen Stringvergleich zum Ignorieren angibt. Dies ist auch der schnellste Weg, viel schneller, als die Strings in Klein- oder Großbuchstaben umzuwandeln und sie danach zu vergleichen.
Ich testete die Leistung beider Ansätze und die ordinale ignorieren Fall Zeichenfolge Vergleich war mehr als 9 mal schneller! Es ist auch zuverlässiger als das Konvertieren von Zeichenfolgen in Klein- oder Großbuchstaben (überprüfen Sie das türkische i-Problem). Also immer die String.Equals Methode Strings auf Gleichheit vergleichen:
String.Equals(string1, string2, StringComparison.OrdinalIgnoreCase);
Wenn Sie einen kulturspezifische String-Vergleich durchführen möchten Sie den folgenden Code verwenden:
String.Equals(string1, string2, StringComparison.CurrentCultureIgnoreCase);
Bitte beachten Sie, dass die zweiten Verwendungsbeispiele die Zeichenfolgenvergleichslogik der aktuellen Kultur, wodurch sie im ersten Beispiel langsamer ist als der Vergleich "Ordnungszahl ignorieren". Wenn Sie also keine kulturspezifische Zeichenfolgenvergleichslogik benötigen und die maximale Leistung erreicht haben, verwenden Sie die " ordinal ignore case "Vergleich.
Für weitere Informationen, read the full story on my blog.
möglich Duplikat [Caselessly Strings in C# zu vergleichen] (http://stackoverflow.com/questions/501906/caseless-comaring-strings-in-c-sharp) – nawfal
Falls jemand über diese Frage stolpert, die nach einem case insensitive Vergleich für ein Wörterbuch sucht, sehen Sie sich diese Frage an hier: [Groß-/Kleinschreibung nicht beachten für generisches Wörterbuch] (http://stackoverflow.com/questions/13230414/case-insensitive-access-for-generic-dic –
Robotnik
Es wäre wirklich nett; sagen wir, um eine entsprechende '~ =' zu definieren, um '==' als eine Groß-und Kleinschreibung Version. – eidylon