Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
Las convenciones para comparar y ordenar datos varían de una cultura a otra. Por ejemplo, el criterio de ordenación puede basarse en fonéticas o en la representación visual de caracteres. En los idiomas de Este de Asia, los caracteres se ordenan teniendo en cuenta los trazos y el radical de los ideogramas. El criterio de ordenación también depende del orden que se emplea en los distintos idiomas y referencias culturales para el alfabeto. Por ejemplo, el idioma danés tiene un carácter "Æ" que se ordena después de la "Z" en el alfabeto. Además, las comparaciones pueden distinguir mayúsculas de minúsculas o distinguir mayúsculas de minúsculas, y las reglas de mayúsculas y minúsculas también pueden diferir según la referencia cultural. La CompareInfo clase es responsable de mantener estos datos de comparación de cadenas sensibles a la cultura y de realizar operaciones de cadena sensibles a la cultura.
Normalmente, no es necesario crear instancias de un CompareInfo objeto directamente, ya que todas las operaciones de comparación de cadenas no ordinales usan implícitamente una, incluidas las llamadas al String.Compare método . Sin embargo, si desea recuperar un CompareInfo objeto, puede hacerlo de una de estas maneras:
Recuperando el valor de la propiedad CultureInfo.CompareInfopara una referencia cultural determinada.
Llamando al método estático con un nombre de referencia cultural GetCompareInfo. Esto permite el acceso enlazado en tiempo de ejecución a un objeto CompareInfo.
Valores de búsqueda omitidos
Los juegos de caracteres incluyen caracteres que se pueden pasar por alto, que son los caracteres que no se tienen en cuenta al realizar una comparación lingüística o en la que se tiene en cuenta la referencia cultural. Los métodos de comparación como IndexOf y LastIndexOf no tienen en cuenta esos caracteres cuando realizan una comparación sensible a las diferencias culturales. Entre los caracteres ignorables se incluyen:
String.Empty. Los métodos de comparación que distinguen referencias culturales siempre encontrarán una cadena vacía al principio (índice cero) de la cadena que se busca.
Carácter o cadena que consta de caracteres cuyos puntos de código no se consideran en la operación debido a las opciones de comparación. En particular, las opciones CompareOptions.IgnoreNonSpace y CompareOptions.IgnoreSymbols producen búsquedas en las que se ignoran los símbolos y los caracteres de combinación sin espaciado.
Cadena con puntos de código que no tienen ningún significado lingüístico. Por ejemplo, un guión flexible (U+00AD) siempre se omite en una comparación de cadenas que distingue la referencia cultural.
Consideraciones de seguridad
Si una decisión de seguridad depende de una comparación de cadenas o de un cambio de caso, debe usar la InvariantCulture propiedad para asegurarse de que el comportamiento sea coherente, independientemente de la configuración cultural del sistema operativo.
Nota:
Cuando sea posible, debe usar métodos de comparación de cadenas que tengan un parámetro de tipo CompareOptions para especificar el tipo de comparación esperado. Como regla general, use opciones lingüísticas (mediante la referencia cultural actual) para comparar cadenas mostradas en la interfaz de usuario y especificar Ordinal o OrdinalIgnoreCase para comparaciones de seguridad.