Ich verwende die Array.Contains
Methode für ein String-Array. Wie kann ich die Groß- und Kleinschreibung nicht berücksichtigen?
172
array.Contains("str", StringComparer.OrdinalIgnoreCase);
Oder je nach den spezifischen Umständen bevorzugen Sie vielleicht:
array.Contains("str", StringComparer.CurrentCultureIgnoreCase);
array.Contains("str", StringComparer.InvariantCultureIgnoreCase);
CurrentCulture
), sollten SieOrdinal
eher als verwendenInvariantCulture
.InvariantCulture
. Die Verwendung einer der drei oben genannten Optionen hängt von den Umständen ab. Ich habe keine Einwände gegen Ihre Neuordnung, aber ich entferne den Kommentar "wahrscheinlich nicht". In der Antwort wurde bereits klargestellt, dass Sie diejenige auswählen sollten, die in der aktuellen Situation für Sie funktioniert.Einige wichtige Hinweise von meiner Seite oder zumindest einige verteilte Informationen an einer Stelle - in Bezug auf den obigen Tipp mit einem StringComparer wie in:
array.Contains()
ist eine LINQ-Erweiterungsmethode und funktioniert daher standardmäßig nur mit .NET 3.5 oder höher und benötigt:using System;
using System.Linq;
Aber: In .NET 2.0 ist die einfache
Contains()
Methode (ohne Berücksichtigung der Groß- und Kleinschreibung) zumindest so möglich, mit einer Besetzung:if ( ((IList<string>)mydotNet2Array).Contains(“str”) ) {}
Da die Contains () -Methode Teil der IList-Schnittstelle ist, funktioniert dies nicht nur mit Arrays, sondern auch mit Listen usw.
quelle
Implementieren Sie einen benutzerdefinierten IEqualityComparer , der die Groß- und Kleinschreibung nicht berücksichtigt.
Überprüfen Sie dies zusätzlich . Dann müssten Sie (theoretisch) nur noch Folgendes tun:
quelle
quelle