CompareInfo Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Implementa un conjunto de métodos para la comparación de cadenas que tienen en cuenta la referencia cultural.
public ref class CompareInfo
public ref class CompareInfo sealed : System::Runtime::Serialization::IDeserializationCallback
public ref class CompareInfo : System::Runtime::Serialization::IDeserializationCallback
public class CompareInfo
public sealed class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
type CompareInfo = class
type CompareInfo = class
interface IDeserializationCallback
[<System.Serializable>]
type CompareInfo = class
interface IDeserializationCallback
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CompareInfo = class
interface IDeserializationCallback
Public Class CompareInfo
Public NotInheritable Class CompareInfo
Implements IDeserializationCallback
Public Class CompareInfo
Implements IDeserializationCallback
- Herencia
-
CompareInfo
- Atributos
- Implementaciones
Ejemplos
En el ejemplo siguiente se muestra cómo el CompareInfo objeto asociado a un objeto afecta a la CultureInfo comparación de cadenas.
using namespace System;
using namespace System::Text;
using namespace System::Globalization;
int main()
{
array<String^>^ sign = gcnew array<String^> { "<", "=", ">" };
// The code below demonstrates how strings compare
// differently for different cultures.
String^ s1 = "Coté";
String^ s2 = "coté";
String^ s3 = "côte";
// Set sort order of strings for French in France.
CompareInfo^ ci = (gcnew CultureInfo("fr-FR"))->CompareInfo;
Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);
// Display the result using fr-FR Compare of Coté = coté.
Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
s1, s2, sign[ci->Compare(s1, s2, CompareOptions::IgnoreCase) + 1]);
// Display the result using fr-FR Compare of coté > côte.
Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
s2, s3, sign[ci->Compare(s2, s3, CompareOptions::None) + 1]);
// Set sort order of strings for Japanese as spoken in Japan.
ci = (gcnew CultureInfo("ja-JP"))->CompareInfo;
Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);
// Display the result using ja-JP Compare of coté < côte.
Console::WriteLine("ja-JP Compare: {0} {2} {1}",
s2, s3, sign[ci->Compare(s2, s3) + 1]);
}
// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
using System;
using System.Text;
using System.Globalization;
public sealed class App
{
static void Main(string[] args)
{
String[] sign = new String[] { "<", "=", ">" };
// The code below demonstrates how strings compare
// differently for different cultures.
String s1 = "Coté", s2 = "coté", s3 = "côte";
// Set sort order of strings for French in France.
CompareInfo ci = new CultureInfo("fr-FR").CompareInfo;
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);
// Display the result using fr-FR Compare of Coté = coté.
Console.WriteLine("fr-FR Compare: {0} {2} {1}",
s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]);
// Display the result using fr-FR Compare of coté > côte.
Console.WriteLine("fr-FR Compare: {0} {2} {1}",
s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]);
// Set sort order of strings for Japanese as spoken in Japan.
ci = new CultureInfo("ja-JP").CompareInfo;
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);
// Display the result using ja-JP Compare of coté < côte.
Console.WriteLine("ja-JP Compare: {0} {2} {1}",
s2, s3, sign[ci.Compare(s2, s3) + 1]);
}
}
// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
Imports System.Text
Imports System.Globalization
NotInheritable Public Class App
Shared Sub Main(ByVal args() As String)
Dim sign() As String = {"<", "=", ">"}
' The code below demonstrates how strings compare
' differently for different cultures.
Dim s1 As String = "Coté"
Dim s2 As String = "coté"
Dim s3 As String = "côte"
' Set sort order of strings for French in France.
Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
' Display the result using fr-FR Compare of Coté = coté.
Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1)))
' Display the result using fr-FR Compare of coté > côte.
Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1)))
' Set sort order of strings for Japanese as spoken in Japan.
ci = New CultureInfo("ja-JP").CompareInfo
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
' Display the result using ja-JP Compare of coté < côte.
Console.WriteLine("ja-JP Compare: {0} {2} {1}", _
s2, s3, sign((ci.Compare(s2, s3) + 1)))
End Sub
End Class
' This code produces the following output.
'
' The LCID for fr-FR is 1036.
' fr-FR Compare: Coté = coté
' fr-FR Compare: coté > côte
' The LCID for ja-JP is 1041.
' ja-JP Compare: coté < côte
Comentarios
Las convenciones para comparar y ordenar datos varían de la referencia cultural a la referencia cultural. Por ejemplo, el criterio de ordenación puede basarse en fonéticos 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 que distinguen la referencia cultural y de realizar operaciones de cadena sensibles a la referencia cultural.
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, 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 CultureInfo.CompareInfo propiedad para una referencia cultural determinada.
Llamando al método estático GetCompareInfo con un nombre de referencia cultural. Esto permite el acceso enlazado en tiempo de ejecución a un CompareInfo objeto .
Valores de búsqueda omitido
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 estos caracteres cuando realizan una comparación que distingue la referencia cultural. Entre los caracteres ignorables se incluyen:
String.Empty. Los métodos de comparación sensibles a la referencia cultural siempre encontrarán una cadena vacía al principio (índice cero) de la cadena que se está buscando.
Carácter o cadena que consta de caracteres con puntos de código que no se consideran en la operación debido a las opciones de comparación, en particular, las opciones y CompareOptions.IgnoreSymbols generan búsquedas en las CompareOptions.IgnoreNonSpace que se omiten 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 suave (U+00AD) siempre se omite en una comparación de cadenas que distingue referencias culturales.
Consideraciones de seguridad
Si una decisión de seguridad depende de una comparación de cadenas o un cambio de caso, debe usar la InvariantCulture propiedad para asegurarse de que el comportamiento es coherente, independientemente de la configuración de referencia 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.
Propiedades
| LCID |
Obtiene el identificador de referencia cultural correctamente formado para el objeto CompareInfo actual. |
| Name |
Obtiene el nombre de la referencia cultural utilizada por este objeto CompareInfo para las operaciones de ordenación. |
| Version |
Obtiene información sobre la versión de Unicode utilizada para comparar y ordenar cadenas. |
Métodos
| Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Compara dos intervalos de caracteres de solo lectura. |
| Compare(String, Int32, Int32, String, Int32, Int32) |
Compara una sección de una cadena con la de otra cadena. |
| Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) |
Compara una sección de una cadena con la de otra cadena utilizando el valor de CompareOptions especificado. |
| Compare(String, Int32, String, Int32) |
Compara la sección final de una cadena con la de otra cadena. |
| Compare(String, Int32, String, Int32, CompareOptions) |
Compara la sección final de una cadena con la de otra utilizando el valor de CompareOptions especificado. |
| Compare(String, String) |
Compara dos cadenas. |
| Compare(String, String, CompareOptions) |
Compara dos cadenas utilizando el valor de CompareOptions especificado. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto CompareInfo actual. |
| GetCompareInfo(Int32) |
Inicializa un nuevo objeto CompareInfo que está asociado a la referencia cultural con el identificador especificado. |
| GetCompareInfo(Int32, Assembly) |
Inicializa un nuevo objeto CompareInfo que está asociado a la referencia cultural especificada y que usa los métodos de comparación de cadenas del Assembly especificado. |
| GetCompareInfo(String) |
Inicializa un nuevo objeto CompareInfo que está asociado a la referencia cultural con el nombre especificado. |
| GetCompareInfo(String, Assembly) |
Inicializa un nuevo objeto CompareInfo que está asociado a la referencia cultural especificada y que usa los métodos de comparación de cadenas del Assembly especificado. |
| GetHashCode() |
Sirve como función hash para el objeto CompareInfo actual, que se puede utilizar en algoritmos hash y estructuras de datos, como una tabla hash. |
| GetHashCode(ReadOnlySpan<Char>, CompareOptions) |
Obtiene el código hash para un intervalo de caracteres a partir de las opciones de comparación especificadas. |
| GetHashCode(String, CompareOptions) |
Obtiene el código hash para una cadena basándose en las opciones de comparación especificadas. |
| GetSortKey(ReadOnlySpan<Char>, Span<Byte>, CompareOptions) |
Calcula una clave de ordenación para la entrada especificada. |
| GetSortKey(String) |
Obtiene el criterio de ordenación para la cadena especificada. |
| GetSortKey(String, CompareOptions) |
Obtiene un objeto SortKey para la cadena especificada utilizando el valor de CompareOptions especificado. |
| GetSortKeyLength(ReadOnlySpan<Char>, CompareOptions) |
Obtiene el número total de bytes de la clave de ordenación que se generarán a partir de la entrada especificada. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Busca la primera aparición de una subcadena en el intervalo de caracteres de solo lectura especificado. |
| IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
Busca la primera aparición de una subcadena dentro de una cadena de origen. |
| IndexOf(ReadOnlySpan<Char>, Rune, CompareOptions) |
Busca la primera aparición de un objeto Rune en el intervalo de caracteres de solo lectura especificado. |
| IndexOf(String, Char) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en toda la cadena de origen. |
| IndexOf(String, Char, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en toda la cadena de origen utilizando el valor de CompareOptions especificado. |
| IndexOf(String, Char, Int32) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que abarca desde el índice especificado hasta el final de la cadena. |
| IndexOf(String, Char, Int32, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que abarca desde el índice especificado hasta el final de la cadena, utilizando el valor de CompareOptions especificado. |
| IndexOf(String, Char, Int32, Int32) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que comienza en el índice especificado y contiene el número de elementos especificado. |
| IndexOf(String, Char, Int32, Int32, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que comienza en el índice especificado y contiene el número de elementos especificado, utilizando el valor de CompareOptions especificado. |
| IndexOf(String, String) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en toda la cadena de origen. |
| IndexOf(String, String, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en toda la cadena de origen utilizando el valor de CompareOptions especificado. |
| IndexOf(String, String, Int32) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que abarca desde el índice especificado hasta el final de la cadena. |
| IndexOf(String, String, Int32, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que abarca desde el índice especificado hasta el final de la cadena, utilizando el valor de CompareOptions especificado. |
| IndexOf(String, String, Int32, Int32) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que comienza en el índice especificado y contiene el número de elementos especificado. |
| IndexOf(String, String, Int32, Int32, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la primera aparición incluida en la sección de la cadena de origen que comienza en el índice especificado y contiene el número de elementos especificado, utilizando el valor de CompareOptions especificado. |
| IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Determina si un intervalo de caracteres de solo lectura comienza con un prefijo específico. |
| IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
Determina si una cadena comienza con un prefijo específico. |
| IsPrefix(String, String) |
Determina si la cadena de origen especificada comienza con el prefijo especificado. |
| IsPrefix(String, String, CompareOptions) |
Determina si la cadena de origen especificada comienza con el prefijo especificado utilizando el valor de CompareOptions especificado. |
| IsSortable(Char) |
Indica si se puede ordenar un carácter Unicode especificado. |
| IsSortable(ReadOnlySpan<Char>) |
Indica si se puede ordenar un intervalo de caracteres Unicode de solo lectura especificado. |
| IsSortable(Rune) |
Indica si el objeto Rune especificado se puede ordenar. |
| IsSortable(String) |
Indica si se puede ordenar una cadena Unicode especificada. |
| IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Determina si un intervalo de caracteres de solo lectura finaliza con un sufijo específico. |
| IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
Determina si una cadena termina con un sufijo específico. |
| IsSuffix(String, String) |
Determina si la cadena de origen especificada termina con el sufijo especificado. |
| IsSuffix(String, String, CompareOptions) |
Determina si la cadena de origen especificada termina con el sufijo especificado utilizando el valor de CompareOptions especificado. |
| LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
Busca la última aparición de una subcadena dentro del intervalo de caracteres de solo lectura especificado. |
| LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
Busca la última aparición de una subcadena dentro de una cadena de origen. |
| LastIndexOf(ReadOnlySpan<Char>, Rune, CompareOptions) |
Busca la última aparición de un objeto Rune en el intervalo de caracteres de solo lectura especificado. |
| LastIndexOf(String, Char) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en toda la cadena de origen. |
| LastIndexOf(String, Char, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en toda la cadena de origen utilizando el valor de CompareOptions especificado. |
| LastIndexOf(String, Char, Int32) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que abarca desde el comienzo de la cadena hasta el índice especificado. |
| LastIndexOf(String, Char, Int32, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que abarca desde el principio de la cadena hasta el índice especificado, utilizando el valor de CompareOptions especificado. |
| LastIndexOf(String, Char, Int32, Int32) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que contiene el número de elementos especificado y termina en el índice especificado. |
| LastIndexOf(String, Char, Int32, Int32, CompareOptions) |
Busca el carácter especificado y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que contiene el número de elementos especificado y termina en el índice especificado, utilizando el valor de CompareOptions especificado. |
| LastIndexOf(String, String) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en toda la cadena de origen. |
| LastIndexOf(String, String, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en toda la cadena de origen utilizando el valor de CompareOptions especificado. |
| LastIndexOf(String, String, Int32) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que abarca desde el comienzo de la cadena hasta el índice especificado. |
| LastIndexOf(String, String, Int32, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que abarca desde el principio de la cadena hasta el índice especificado, utilizando el valor de CompareOptions especificado. |
| LastIndexOf(String, String, Int32, Int32) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que contiene el número de elementos especificado y termina en el índice especificado. |
| LastIndexOf(String, String, Int32, Int32, CompareOptions) |
Busca la subcadena especificada y devuelve el índice de base cero de la última aparición incluida en la sección de la cadena de origen que contiene el número de elementos especificado y termina en el índice especificado, utilizando el valor de CompareOptions especificado. |
| MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el actual objeto CompareInfo. |
Implementaciones de interfaz explícitas
| IDeserializationCallback.OnDeserialization(Object) |
Se ejecuta cuando todo el gráfico de objetos ha sido deserializado. |
Métodos de extensión
| GetStringComparer(CompareInfo, CompareOptions) |
Devuelve un objeto StringComparer según las reglas de comparación de cadenas dependientes de la referencia cultural de un objeto CompareInfo especificado. |