Leer en inglés

Compartir a través de


CompareOptions Enumeración

Definición

Define las opciones de comparación de cadenas que se van a utilizar con CompareInfo.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

C#
[System.Flags]
public enum CompareOptions
C#
[System.Flags]
[System.Serializable]
public enum CompareOptions
C#
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CompareOptions
Herencia
CompareOptions
Atributos

Campos

Nombre Valor Description
IgnoreCase 1

Indica que en la comparación de cadenas no se debe tener en cuenta la distinción entre mayúsculas y minúsculas.

IgnoreKanaType 8

Indica que en la comparación de cadenas no se debe tener en cuenta el tipo Kana. El tipo Kana hace referencia a los caracteres japoneses hiragana y katakana, que representan sonidos fonéticos del idioma japonés. Los caracteres hiragana se utilizan en expresiones y palabras propias del idioma japonés, mientras que los caracteres katakana se utilizan para préstamos léxicos, como "Internet". Un sonido fonético puede expresarse tanto en caracteres hiragana como katakana. Si se selecciona este valor, el carácter hiragana de un sonido se considera equivalente al carácter katakana del mismo sonido.

IgnoreNonSpace 2

Indica que en las comparaciones de cadenas no deben tenerse en cuenta los caracteres combinables sin espaciado, como los diacríticos. El estándar Unicode define los caracteres de combinación como caracteres que se combinan con caracteres base para generar un nuevo carácter. Los caracteres combinables sin espaciado no ocupan por sí mismos un espacio cuando se representan.

IgnoreSymbols 4

Indica que la comparación de cadenas debe pasar por alto los símbolos, como espacios en blanco, puntuación, símbolos de moneda, signos de porcentaje, símbolos matemáticos, la "y" comercial (&), etc.

IgnoreWidth 16

Indica que en la comparación de cadenas no se debe tener en cuenta el ancho de los caracteres. Por ejemplo, los caracteres katakana japoneses se pueden escribir como ancho completo o medio ancho. Si se selecciona este valor, los caracteres katakana escritos como ancho completo se consideran iguales que los mismos caracteres escritos como medio ancho.

None 0

Indica la configuración predeterminada de las opciones para la comparación de cadenas.

Ordinal 1073741824

Indica que la comparación de cadenas debe usar valores sucesivos de la cadena con codificación Unicode UTF-16 (comparación de unidad de código con unidad de código), lo que tiene como resultado una comparación rápida pero que no reconoce la referencia cultural. Una cadena que empieza con una unidad de código XXXX16 va antes que una cadena que empieza por YYYY16, si XXXX16 es menor que YYYY16. Este valor no se puede combinar con otros valores de CompareOptions y se debe usar solo.

OrdinalIgnoreCase 268435456

La comparación de cadenas debe omitir la distinción entre mayúsculas y minúsculas y, a continuación, realizar una comparación de ordinales. Esta técnica es equivalente a poner la cadena en mayúsculas utilizando la referencia cultural de todos los idiomas y realizar después una comparación de ordinales en el resultado.

StringSort 536870912

Indica que la comparación de cadenas debe usar el algoritmo de ordenación por cadena. En una ordenación por cadena, el guión y el apóstrofo, así como otros símbolos no alfanuméricos, van delante de los caracteres alfanuméricos.

Ejemplos

C#
using System;
using System.Collections;
using System.Globalization;

public class SamplesCompareOptions  {

   private class MyStringComparer: IComparer {
      private CompareInfo myComp;
      private CompareOptions myOptions = CompareOptions.None;

      // Constructs a comparer using the specified CompareOptions.
      public MyStringComparer( CompareInfo cmpi, CompareOptions options )  {
         myComp = cmpi;
         this.myOptions = options;
      }

      // Compares strings with the CompareOptions specified in the constructor.
      public int Compare(Object a, Object b) {
         if (a == b) return 0;
         if (a == null) return -1;
         if (b == null) return 1;

         String sa = a as String;
         String sb = b as String;
         if (sa != null && sb != null)
            return myComp.Compare(sa, sb, myOptions);
         throw new ArgumentException("a and b should be strings.");
      }
   }

   public static void Main()  {

      // Creates and initializes an array of strings to sort.
      String[] myArr = new String[9] { "cant", "bill's", "coop", "cannot", "billet", "can't", "con", "bills", "co-op" };
      Console.WriteLine( "\nInitially," );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Creates and initializes a Comparer to use.
      //CultureInfo myCI = new CultureInfo( "en-US", false );
      MyStringComparer myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.None);

      // Sorts the array without StringSort.
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting without CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Sorts the array with StringSort.
      myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"), CompareOptions.StringSort);
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting with CompareOptions.StringSort:" );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );
   }
}

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions.StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions.StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop

*/

Comentarios

Para obtener más información sobre esta API, consulte Comentarios complementarios de la API para CompareOptions.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Consulte también