Auf Englisch lesen

Teilen über


CompareOptions Enumeration

Definition

Definiert die mit CompareInfo zu verwendenden Optionen für den Zeichenfolgenvergleich.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

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
Vererbung
CompareOptions
Attribute

Felder

Name Wert Beschreibung
IgnoreCase 1

Gibt an, dass beim Zeichenfolgenvergleich die Groß- und Kleinschreibung nicht beachtet wird.

IgnoreKanaType 8

Gibt an, dass beim Zeichenfolgenvergleich Zeichen vom Typ Kana ignoriert werden. Der Kana-Zeichentyp bezieht sich auf die japanischen Hiragana- und Katakana-Schriftzeichen, die im Japanischen phonetische Laute darstellen. Hiragana wird für japanische Ausdrücke und Wörter verwendet, während Katakana für Lehnwörter aus anderen Sprachen, z. B. "Computer" oder "Internet", verwendet wird. Ein phonetischer Laut kann sowohl in Hiragana als auch in Katakana dargestellt werden. Wenn dieser Wert ausgewählt ist, wird das Hiragana-Zeichen für einen Laut als gleichwertig mit dem Katakana-Zeichen für denselben Laut betrachtet.

IgnoreNonSpace 2

Gibt an, dass bei Zeichenfolgenvergleichen Kombinationszeichen ohne horizontalen Vorschub, z. B. diakritische Zeichen, ignoriert werden. Der Unicode-Standard definiert Kombinationszeichen als Zeichen, die mit Basiszeichen kombiniert werden, um ein neues Zeichen zu erzeugen. Kombinationszeichen ohne horizontalen Vorschub nehmen bei der Darstellung keinen über die Breite des Basiszeichens hinausgehenden Platz ein.

IgnoreSymbols 4

Gibt an, dass der Zeichenfolgenvergleich Symbole ignorieren muss, z.B. Leerräume, Satzzeichen, Währungssymbole, das Prozentzeichen, mathematische Symbole, das kaufmännische Und usw.

IgnoreWidth 16

Gibt an, dass beim Zeichenfolgenvergleich die Zeichenbreite ignoriert wird. Japanische Katakana-Zeichen können z. B. in voller oder halber Breite geschrieben werden. Wenn dieser Wert ausgewählt ist, werden die in voller Breite geschriebenen Katakana-Zeichen als denselben in halber Breite geschriebenen Zeichen gleichwertig betrachtet.

None 0

Gibt die Standardeinstellungen der Optionen für Zeichenfolgenvergleiche an.

Ordinal 1073741824

Gibt an, dass der Zeichenfolgenvergleich aufeinanderfolgende Unicode UTF-16-codierte Werte der Zeichenfolge verwenden muss (Vergleich von Codeeinheiten). Dies führt zu einem schnellen, jedoch kulturunabhängigen Vergleich. Eine Zeichenfolge, die mit der Codeeinheit „XXXX16“ beginnt, kommt vor einer Zeichenfolge, die mit „YYYY16“ beginnt, wenn XXXX16 kleiner als YYYY16 ist. Dieser Wert kann nicht mit anderen CompareOptions-Werten kombiniert werden und muss allein verwendet werden.

OrdinalIgnoreCase 268435456

Beim Zeichenfolgenvergleich darf die Groß- und Kleinschreibung nicht berücksichtigt werden, und anschließend muss ein ordinaler Vergleich erfolgen. Dieses Verfahren entspricht dem Konvertieren der Zeichenfolge in Großbuchstaben mithilfe der invarianten Kultur und dem anschließenden Ordinalvergleich mit dem Ergebnis.

StringSort 536870912

Gibt an, dass beim Zeichenfolgenvergleich der Zeichenfolgensortieralgorithmus verwendet werden muss. Bei der Zeichenfolgensortierung werden Bindestriche und Apostrophe sowie andere nicht alphanumerische Symbole vor alphanumerischen Zeichen aufgeführt.

Beispiele

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

*/

Hinweise

Weitere Informationen zu dieser API finden Sie unter Ergänzende API-Hinweise zu CompareOptions.

Gilt für:

Produkt Versionen
.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

Weitere Informationen