Classe CompareInfo

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Le convenzioni per il confronto e l'ordinamento dei dati variano in base alle impostazioni cultura. L'ordinamento può, ad esempio, essere basato sulla fonetica 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 dalle lingue e dalle impostazioni cultura dell'ordine utilizzate per l'alfabeto. Ad esempio, la lingua danese ha un carattere "Æ" che ordina dopo "Z" nell'alfabeto. Inoltre, nei confronti può essere o meno applicata la distinzione tra maiuscole e minuscole. Le regole relative all'utilizzo di maiuscole e minuscole possono anche differire in base alle impostazioni cultura. La classe CompareInfo è responsabile della gestione dei dati di confronto delle stringhe dipendenti dalle impostazioni cultura e dell'esecuzione di operazioni su stringhe dipendenti dalle impostazioni cultura.

In genere, non è necessario creare direttamente un'istanza di un oggetto CompareInfo, perché ne viene utilizzata una in modo implicito da tutte le operazioni di confronto di stringhe non ordinali, incluse le chiamate al metodo String.Compare. Tuttavia, se si desidera recuperare un oggetto CompareInfo, è possibile effettuarlo mediante uno dei seguenti modi:

  • Recuperando il valore della proprietà CultureInfo.CompareInfo per impostazioni cultura specifiche.

  • Chiamando il metodo statico GetCompareInfo con un nome di impostazioni cultura. Questo consente di effettuare l'accesso ad associazione tardiva a un oggetto CompareInfo.

Valori di ricerca ignorati

I set di caratteri includono caratteri ignorabili, ovvero caratteri che non sono considerati durante l'esecuzione di un confronto linguistico o dipendente dalle impostazioni cultura. I metodi di confronto come IndexOf e LastIndexOf non considerano tali caratteri quando eseguono un confronto dipendente dalle impostazioni cultura. I caratteri ignorabili includono:

  • String.Empty. I metodi di confronto dipendenti dalle impostazioni cultura troveranno sempre una stringa vuota all'inizio (indice zero) della stringa cercata.

  • 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 CompareOptions.IgnoreNonSpace opzioni e CompareOptions.IgnoreSymbols producono ricerche in cui i simboli e i caratteri non di combinazione vengono ignorati.

  • Una stringa con punti di codice senza alcun significato linguistico. Ad esempio, il segno meno facoltativo (U+00AD) nei confronti di stringhe dipendenti dalle impostazioni cultura viene sempre ignorato.

Considerazioni sulla sicurezza

Se una decisione relativa alla sicurezza dipende da un confronto tra stringhe o da un'operazione di modifica delle maiuscole e minuscole, è necessario utilizzare la proprietà InvariantCulture per assicurarsi che il comportamento sia coerente indipendentemente dalle impostazioni cultura del sistema operativo.

Nota

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 (usando le impostazioni cultura correnti) per confrontare le stringhe visualizzate nell'interfaccia utente e specificare Ordinal o OrdinalIgnoreCase per i confronti di sicurezza.