Ordenar con referencias culturales
Actualización: noviembre 2007
La ordenación de cadenas depende de las reglas de ordenación utilizadas para comparar, y por tanto ordenar, pares de cadenas. Cuando la aplicación realiza una operación de comparación, puede especificar explícitamente la regla de ordenación con uno o varios valores de la enumeración CompareOptions o especificar implícitamente una regla de ordenación con un objeto CultureInfo.
.NET Framework admite las reglas de ordenación por palabra, cadena y ordinales. Una ordenación por palabra realiza una comparación de las cadenas que tiene en cuenta las referencias culturales en las que ciertos caracteres Unicode no alfanuméricos podrían tener asignados valores especiales. Por ejemplo, el guión ("-") podría tener asignado un valor muy pequeño de tal forma que "baúl" y "ba-úl" aparezcan uno junto al otro en una lista ordenada. Una ordenación por cadena es similar a la ordenación por palabra, excepto que no hay casos especiales y todos los símbolos alfanuméricos van antes de los caracteres Unicode alfanuméricos. Una ordenación ordinal compara las cadenas basadas en el valor numérico de cada objeto Char en la cadena. Para obtener más información sobre las reglas de ordenación por palabra, cadena y ordinal, vea CompareOptions.
.NET Framework representa las cadenas con la clase String y cada carácter Unicode de una cadena con una estructura Char. Las referencias culturales se representan con la clase CultureInfo y la clase CompareInfo representa información específica de la referencia cultural que pertenece a una comparación. Las clases String y CompareInfo son las fuentes principales para los métodos de comparación. Las operaciones de comparación utilizan la referencia cultural asociada al subproceso actual a menos que se especifique lo contrario.
Cuando y cómo comparar con referencias culturales
Utilice las instrucciones siguientes para decidir si la aplicación debe realizar una comparación que tiene en cuenta la referencia cultural.
Si la aplicación necesita una operación de ordenación que depende de una referencia cultural específica, debe utilizar un método de comparación que especifique un objeto CultureInfo o un parámetro de la enumeración CompareOptions.
Si la aplicación necesita una operación de ordenación que no es específica de una referencia cultural determinada, debe especificar la referencia cultural invariable o utilizar una ordenación ordinal. Por ejemplo, una aplicación utiliza una comparación ordinal para ordenar los nombres de archivos, zonas de exclusión mutua y canalizaciones con nombre. Para obtener más información sobre la referencia cultural para todos los idiomas, vea Utilizar la propiedad InvariantCulture. Para obtener más información sobre la ordenación ordinal, vea Normalización y ordenación.
Si la aplicación toma una decisión de seguridad basada en la ordenación de cadenas, utilice una ordenación ordinal.
Nota importante: |
---|
Se ha reemplazado el consejo anterior para utilizar la referencia cultural para todos los idiomas en una operación de la comparación que se utiliza para tomar una decisión de seguridad. En su lugar, la aplicación debe utilizar una comparación ordinal. |