Opmerking

In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.

Conventies voor het vergelijken en sorteren van gegevens verschillen van cultuur tot cultuur. De sorteervolgorde kan bijvoorbeeld zijn gebaseerd op fonetische tekens of op de visuele weergave van tekens. In de Oost-Aziatische talen worden tekens gesorteerd op de streken en radicalen van ideogrammen. Sorteren is ook afhankelijk van de volgordetalen en culturen die voor het alfabet worden gebruikt. De Deense taal heeft bijvoorbeeld een 'Æ'-teken dat wordt gesorteerd na 'Z' in het alfabet. Bovendien kunnen vergelijkingen hoofdlettergevoelig of niet-hoofdlettergevoelig zijn, en regels voor hoofdlettergebruik kunnen ook verschillen per cultuur. De CompareInfo klasse is verantwoordelijk voor het onderhouden van deze cultuurgevoelige tekenreeksvergelijkingsgegevens en voor het uitvoeren van cultuurgevoelige tekenreeksbewerkingen.

Normaal gesproken hoeft u een object niet rechtstreeks te instantiëren CompareInfo , omdat een object impliciet wordt gebruikt door alle niet-ordinale tekenreeksvergelijkingsbewerkingen, inclusief aanroepen naar de String.Compare methode. Als u echter wel een CompareInfo object wilt ophalen, kunt u dit op een van de volgende manieren doen:

Genegeerde zoekwaarden

Tekensets bevatten negeerbare tekens. Dit zijn tekens die niet worden overwogen bij het uitvoeren van een taalkundige of cultuurgevoelige vergelijking. Vergelijkingsmethoden zoals IndexOf en LastIndexOf beschouwen dergelijke tekens niet wanneer ze een cultuurgevoelige vergelijking uitvoeren. Negeerbare tekens zijn onder andere:

  • String.Empty. Cultuurgevoelige vergelijkingsmethoden vinden altijd een lege tekenreeks aan het begin (index nul) van de tekenreeks die wordt doorzocht.

  • Een teken of tekenreeks die bestaat uit tekens met codepunten die vanwege vergelijkingsopties buiten beschouwing worden gelaten. Met name de opties CompareOptions.IgnoreNonSpace en CompareOptions.IgnoreSymbols produceren zoekopdrachten waarin symbolen en niet-spatiërende combinaties van tekens worden genegeerd.

  • Een tekenreeks met codepunten die geen taalkundige betekenis hebben. Een zacht afbreekstreepje (U+00AD) wordt bijvoorbeeld altijd genegeerd in een cultuurgevoelige tekenreeksvergelijking.

Beveiligingsoverwegingen

Als een beveiligingsbeslissing afhankelijk is van een tekenreeksvergelijking of een casewijziging, moet u de InvariantCulture eigenschap gebruiken om ervoor te zorgen dat het gedrag consistent is, ongeacht de cultuurinstellingen van het besturingssysteem.

Opmerking

Indien mogelijk moet u tekenreeksvergelijkingsmethoden gebruiken die een parameter van het type CompareOptions hebben om het verwachte soort vergelijking op te geven. Als algemene regel gebruikt u taalkundige opties (met behulp van de huidige cultuur) om tekenreeksen te vergelijken die worden weergegeven in de gebruikersinterface en specificeert u Ordinal of OrdinalIgnoreCase voor beveiligingsvergelijkingen.