Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.
Sorteren en tekenreeksvergelijking in .NET Framework
Via .NET Framework 4 bevat elke versie van .NET Framework tabellen met sorteergewichten en gegevens over de normalisatie van tekenreeksen en die zijn gebaseerd op een bepaalde versie van Unicode. In .NET Framework 4.5 en latere versies is de aanwezigheid van deze tabellen afhankelijk van het besturingssysteem:
- In Windows 7 en eerdere versies blijven de tabellen worden gebruikt voor het vergelijken en ordenen van tekenreeksen.
- In Windows 8 delegeert .NET Framework tekenreeksvergelijkings- en bestelbewerkingen naar het besturingssysteem.
Het resultaat van een tekenreeksvergelijking kan dus niet alleen afhankelijk zijn van de .NET Framework-versie, maar ook van de versie van het besturingssysteem, zoals in de volgende tabel wordt weergegeven. Houd er rekening mee dat deze lijst met ondersteunde Unicode-versies alleen van toepassing is op tekenvergelijking en sortering; deze is niet van toepassing op de classificatie van Unicode-tekens per categorie.
| .NET Framework-versie | besturingssysteem | Unicode-versie |
|---|---|---|
| 4 | Alle besturingssystemen | Unicode 5.0 |
| 4.5 en latere versies | Windows 7 | Unicode 5.0 |
| 4.5 en latere versies | Windows 8 en nieuwere versies | Unicode 6.0 |
In Windows 8, omdat de versie van Unicode die wordt gebruikt in tekenreeksvergelijking en volgorde afhankelijk is van de versie van het besturingssysteem, kunnen de resultaten van tekenreeksvergelijking verschillen, zelfs voor toepassingen die worden uitgevoerd op een specifieke versie van .NET Framework.
Sorteren en tekenreeksvergelijking in .NET Core
Alle versies van .NET (Core) zijn afhankelijk van het onderliggende besturingssysteem bij het uitvoeren van tekenreeksvergelijkingen. De resultaten van een tekenreeksvergelijking of de volgorde waarin tekenreeksen worden gesorteerd, zijn daarom afhankelijk van de versie van Unicode die door het besturingssysteem wordt gebruikt bij het uitvoeren van de vergelijking. In Linux-, macOS- en Windows 10- en latere versies bieden internationale onderdelen voor Unicode-bibliotheken de implementatie voor vergelijkings- en sorteer-API's.
De klasse SortVersion gebruiken
De SortVersion klasse bevat informatie over de Unicode-versie die door .NET wordt gebruikt voor het vergelijken en ordenen van tekenreeksen. Hiermee kunnen ontwikkelaars toepassingen schrijven die wijzigingen kunnen detecteren en afhandelen in de versie van Unicode die wordt gebruikt om de tekenreeksen van een toepassing te vergelijken en te sorteren.
U kunt een SortVersion object op twee manieren instantiëren:
- Door de SortVersion constructor aan te roepen, waarmee een nieuw SortVersion object wordt geïnstitueerd op basis van een versienummer en sorteer-id. Deze constructor is het handigst bij het opnieuw maken van een SortVersion object op basis van opgeslagen gegevens.
- Door de waarde van de CompareInfo.Version eigenschap op te halen. Deze eigenschap bevat informatie over de Unicode-versie die wordt gebruikt door de .NET-implementatie waarop de toepassing wordt uitgevoerd.
De SortVersion klasse heeft twee eigenschappen en FullVersionSortId, die de Unicode-versie en de specifieke cultuur aangeven die wordt gebruikt voor tekenreeksvergelijking. De FullVersion eigenschap is een willekeurige numerieke waarde die de Unicode-versie weerspiegelt die wordt gebruikt voor tekenreeksvergelijking en de SortId eigenschap is een willekeurige Guid waarde die overeenkomt met de cultuur waarvan de conventies worden gebruikt voor tekenreeksvergelijking. De waarden van deze twee eigenschappen zijn alleen belangrijk wanneer u twee SortVersion objecten vergelijkt met behulp van de Equals methode, de Equality operator of de Inequality operator.
Meestal gebruikt u een SortVersion object bij het opslaan of ophalen van een vorm van cultuurgevoelige, geordende tekenreeksgegevens, zoals indexen of letterlijke tekenreeksen zelf. Hiervoor zijn de volgende stappen vereist:
Wanneer de geordende tekenreeksgegevens worden opgeslagen, worden de FullVersion waarden en SortId eigenschapswaarden ook opgeslagen.
Wanneer de geordende tekenreeksgegevens worden opgehaald, kunt u het SortVersion object dat wordt gebruikt voor het ordenen van de tekenreeksen opnieuw maken door de SortVersion constructor aan te roepen.
Dit nieuw geïnstantieerde SortVersion object wordt vergeleken met een SortVersion object dat de cultuur weerspiegelt waarvan de conventies worden gebruikt om de tekenreeksgegevens te ordenen.
Als de twee SortVersion objecten niet gelijk zijn, moeten de tekenreeksgegevens opnieuw worden gerangschikt.