Ordinamento dipendente dalle impostazioni cultura
L'ordinamento delle stringhe dipende dalle regole utilizzate per confrontare, e quindi ordinare, coppie di stringhe. Quando l'applicazione esegue un'operazione di confronto, è possibile specificare in modo esplicito la regola di ordinamento con uno o più valori di enumerazione CompareOptions oppure specificare in modo implicito una regola di ordinamento con un oggetto CultureInfo.
In .NET Framework sono supportate regole di ordinamento basate su parola, stringa e ordinale. Un ordinamento per parola consente di eseguire un confronto basato sulle impostazioni cultura tra stringhe in cui a determinati caratteri Unicode non alfanumerici potrebbero essere assegnati determinati pesi. Il trattino "-", ad esempio, potrebbe avere un peso minimo, così che "coop" e "co-op" possano risultare vicini in un elenco ordinato. L'ordinamento basato su stringa è simile a quello basato su parola, tranne per il fatto che non sono previsti casi speciali e tutti i simboli non alfanumerici sono riportati prima di tutti i caratteri Unicode alfanumerici. Infine, nell'ordinamento basato su ordinale, le stringhe vengono confrontate in base al valore numerico di ogni oggetto Char nella stringa. Per ulteriori informazioni sulle regole di ordinamento basate su parola, stringa e ordinale, vedere CompareOptions.
In .NET Framework le stringhe sono rappresentate con la classe String e ogni carattere Unicode di una stringa con una struttura Char. Le impostazioni cultura sono rappresentate con la classe CultureInfo e le informazioni specifiche delle impostazioni cultura relative a un confronto con la classe CompareInfo. Le classi String e CompareInfo costituiscono le fonti principali per i metodi di confronto. Le operazioni di confronto vengono eseguite in base alle impostazioni cultura associate al thread corrente, se non diversamente specificato.
Quando e come eseguire un'operazione di confronto dipendente dalle impostazioni cultura
Per decidere se consentire o meno all'applicazione di eseguire un'operazione di confronto dipendente dalle impostazioni cultura, attenersi alle seguenti linee guida:
Per eseguire un'operazione di ordinamento dipendente da impostazioni cultura particolari, l'applicazione deve utilizzare un metodo di confronto in cui sia specificato un oggetto CultureInfo o un parametro di enumerazione CompareOptions.
Per eseguire un'operazione di ordinamento non dipendente da determinate impostazioni cultura, l'applicazione deve specificare la lingua inglese o utilizzare un ordinamento basato su ordinale. Questo tipo di ordinamento può essere utilizzato ad esempio per ordinare nomi di file, mutex e named pipe. Per ulteriori informazioni sulle impostazioni cultura invarianti, vedere Uso della proprietà InvariantCulture. Per ulteriori informazioni sull'ordinamento basato su ordinale, vedere Normalizzazione e ordinamento.
Se nell'applicazione viene presa una decisione relativa alla sicurezza in base all'ordinamento di stringhe, utilizzare un ordinamento basato su ordinale.
Importante |
---|
Il consiglio fornito in precedenza riguardo all'utilizzo delle impostazioni cultura invarianti in un'operazione di confronto allo scopo di prendere una decisione relativa alla sicurezza non è più valido.L'applicazione deve invece eseguire un confronto ordinale. |