Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.
Le convenzioni per il confronto e l'ordinamento dei dati variano da cultura a cultura. Ad esempio, l'ordinamento può essere basato sui fonetici o sulla rappresentazione visiva dei caratteri. Nelle lingue asiatiche, i caratteri sono ordinati in base al tratto e al radicale degli ideogrammi. L'ordinamento dipende anche dall'ordine che le lingue e le culture utilizzano per l'alfabeto. Ad esempio, la lingua danese ha un carattere "Æ" che ordina dopo "Z" nell'alfabeto. Inoltre, i confronti possono essere sensibili o meno alle maiuscole e le regole relative al maiuscolo e minuscolo possono anche differire in base alla cultura. La classe CompareInfo è responsabile della gestione di questi dati di confronto di stringhe sensibili alla cultura e per l'esecuzione di operazioni di stringa sensibili alla cultura.
In genere, non è necessario creare un'istanza diretta di un CompareInfo oggetto, perché viene usata in modo implicito da tutte le operazioni di confronto di stringhe non ordinali, incluse le chiamate al String.Compare metodo . Tuttavia, se si vuole recuperare un CompareInfo oggetto, è possibile farlo in uno dei modi seguenti:
Recuperando il valore della proprietà CultureInfo.CompareInfo per una particolare cultura.
Chiamando il metodo statico GetCompareInfo con il nome cultura. Ciò consente l'accesso a un oggetto CompareInfo tramite binding tardivo.
Valori di ricerca ignorati
I set di caratteri includono caratteri ignorabili, che sono caratteri non considerati durante l'effettuare un confronto linguistico o sensibile alle differenze culturali. I metodi di confronto come IndexOf e LastIndexOf non considerano tali caratteri quando eseguono un confronto sensibile alla cultura. I caratteri ignorabili includono:
String.Empty. I metodi di confronto sensibili alle impostazioni cultura troveranno sempre una stringa vuota all'inizio (indice zero) della stringa in cui viene eseguita la ricerca.
Un carattere o una stringa costituita da caratteri con punti di codice non considerati nell'operazione a causa delle opzioni di confronto; in particolare, le opzioni CompareOptions.IgnoreNonSpace e CompareOptions.IgnoreSymbols producono ricerche in cui i simboli e i caratteri di combinazione senza spaziatura vengono ignorati.
Stringa con punti di codice che non hanno significato linguistico. Ad esempio, un trattino discreto (U+00AD) viene sempre ignorato in un confronto di stringhe sensibili alla cultura.
Considerazioni sulla sicurezza
Se una decisione di sicurezza dipende da un confronto tra stringhe o da una modifica del caso, è necessario usare la InvariantCulture proprietà per assicurarsi che il comportamento sia coerente, indipendentemente dalle impostazioni cultura del sistema operativo.
Annotazioni
Quando possibile, è consigliabile usare metodi di confronto tra stringhe con un parametro di tipo CompareOptions per specificare il tipo di confronto previsto. Come regola generale, usare le opzioni linguistiche (con la cultura corrente) per confrontare le stringhe visualizzate nell'interfaccia utente e specificare Ordinal o OrdinalIgnoreCase per confronti di sicurezza.