CompareOptions enum

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

Las opciones CompareOptions indican distinción entre mayúsculas y minúsculas o necesidad de omitir los tipos de caracteres.

.NET usa tres formas distintas de ordenar: ordenación de palabras, ordenación de cadenas y ordenación ordinal. La ordenación de palabras realiza una comparación que distingue la referencia cultural de las cadenas. Ciertos caracteres no alfanuméricos podrían tener asignados pesos especiales. Por ejemplo, el guion ("-") podría tener asignado un peso muy pequeño, por lo que las cadenas "coop" y "co-op" aparecerían una junto a la otra en una lista ordenada. La ordenación de cadenas es similar a la ordenación de palabras, salvo que no hay casos especiales. Por lo tanto, todos los símbolos no alfanuméricos están antes que todos los caracteres alfanuméricos. La ordenación ordinal compara cadenas basadas en los valores Unicode de cada elemento de la cadena. Para obtener un conjunto descargable de archivos de texto que contienen información sobre los pesos de caracteres usados en operaciones de ordenación y comparación para sistemas operativos Windows, consulte Tablas de ponderación de ordenación. Para obtener la tabla de ponderación de ordenación para Linux y macOS, consulte la Tabla predeterminada de elementos de intercalación Unicode. La versión específica de la tabla de pesos de ordenación en Linux y macOS depende de la versión de las bibliotecas de componentes internacionales de Unicode instaladas en el sistema. Para más información sobre las versiones de los componentes internacionales de Unicode y las versiones de Unicode que implementan, vea la información sobre la descarga de componentes internacionales de Unicode.

El valor StringSort solo se puede usar con CompareInfo.Compare y CompareInfo.GetSortKey. ArgumentException se produce si se usa el valor StringSort con CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOf o CompareInfo.LastIndexOf.

Nota:

Cuando sea posible, debe usar métodos de comparación de cadenas que acepten un valor CompareOptions para especificar el tipo de comparación esperado. Como regla general, las comparaciones orientadas al usuario se sirven mejor mediante el uso de opciones lingüísticas (mediante la referencia cultural actual), mientras que las comparaciones de seguridad deben especificar Ordinal o OrdinalIgnoreCase.

Ordenes que distinguen referencias culturales

Nota:

Sistemas .NET Core que se ejecutan solo en sistemas Linux y macOS: El comportamiento de intercalación de las referencias culturales de C y Posix siempre distingue mayúsculas de minúsculas porque estas referencias culturales no usan el orden de intercalación Unicode esperado. Se recomienda que utilice una referencia cultural que no sea de C o Posix para realizar operaciones de ordenación que tengan en cuenta la referencia cultural y no distingan mayúsculas y minúsculas.