Condividi tramite


Ordinamento dipendente dalla lingua

Aggiornamento: novembre 2007

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. Nell'ordinamento basato su parola, viene eseguito un confronto tra stringhe dipendente dalle impostazioni cultura, in cui alcuni caratteri Unicode possono assumere un peso particolare. È ad esempio possibile che al trattino (-) venga assegnato un peso molto ridotto affinché i termini "coop" e "co-op" risultino 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 protezione in base all'ordinamento di stringhe, utilizzare un ordinamento basato su ordinale.

Nota 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 protezione non è più valido. L'applicazione deve invece eseguire un confronto ordinale.

Vedere anche

Concetti

Uso della proprietà InvariantCulture

Normalizzazione e ordinamento