Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

CompareOptions-Enumeration

 

Veröffentlicht: Oktober 2016

Definiert die Optionen für Zeichenfolgenvergleiche mit CompareInfo.

Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das eine bitweise Kombination der Memberwerte zulässt.

Namespace:   System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum CompareOptions

MembernameBeschreibung
IgnoreCase

Gibt an, dass der Zeichenfolgenvergleich die Groß-und Kleinschreibung ignorieren muss.

IgnoreKanaType

Gibt an, dass beim Zeichenfolgenvergleich Zeichen vom Typ Kana ignoriert werden. Kana-Typ bezieht sich auf japanische Hiragana und Katakana-Zeichen, die phonetische Sounds in der japanischen Sprache 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. In Hiragana und Katakana kann Sound phonetischer ausgedrückt werden. Wenn dieser Wert aktiviert ist, wird das Hiragana-Zeichen für einen laut gleich dem Katakana-Zeichen für denselben laut betrachtet.

IgnoreNonSpace

Gibt an, dass der Zeichenfolgenvergleich Kombinationszeichen wie diakritische Zeichen ignoriert. Die Unicode Standard definiert Kombinationszeichen als Zeichen, die mit Basiszeichen erzeugt ein neues Zeichen kombiniert werden. Kombinationszeichen keinen Platz allein beim Rendern einnehmen.

IgnoreSymbols

Gibt an, dass der Zeichenfolgenvergleich Symbole, z. B. Leerzeichen, Satzzeichen, Währungssymbole, das Prozentzeichen, mathematische Symbole, das kaufmännische und-Zeichen usw. ignoriert werden.

IgnoreWidth

Gibt an, dass der Zeichenfolgenvergleich die Zeichenbreite ignoriert werden. Beispielsweise können japanische Katakana-Zeichen als voller oder halber Breite geschrieben werden. Wenn dieser Wert ausgewählt ist, gelten die als voller Breite geschriebenen Katakana-Zeichen als gleich den gleichen Zeichen halber Breite geschrieben.

None

Gibt die Standardeinstellungen der Optionen für Zeichenfolgenvergleiche an.

Ordinal

Gibt an, dass der Zeichenfolgenvergleich aufeinanderfolgende Unicode UTF-16-codierte Werte muss zu einem Vergleich geführt, die der Zeichenfolge (Codeeinheit Code Einheit Vergleich) kulturunabhängige ist. Eine Zeichenfolge mit einer Codeeinheit XXXX16 kommt vor einer Zeichenfolge, wobei YYYY16, wenn XXXX16 ist kleiner als YYYY16. Dieser Wert kann nicht mit anderen kombiniert werden CompareOptions -Werte und muss allein verwendet werden.

OrdinalIgnoreCase

Zeichenfolgenvergleich Groß-/Kleinschreibung ignorieren, und führen einen Ordinalvergleich. Dieses Verfahren entspricht dem Konvertieren der Zeichenfolge in Großbuchstaben mithilfe der invarianten Kultur und anschließend einen Ordinalvergleich ausführen, auf dem Ergebnis.

StringSort

Gibt an, dass es sich bei den Zeichenfolgensortieralgorithmus Zeichenfolgenvergleich verwendet werden muss. Bei einer zeichenfolgensortierung werden den Bindestrich und dem Apostroph sowie andere nicht alphanumerische Symbole vor alphanumerischen Zeichen ein.

Diese Optionen geben an, Groß-/Kleinschreibung oder Notwendigkeit Zeichentypen ignoriert werden sollen.

.NET Framework verwendet drei verschiedene Arten sortieren: Sortieren, Zeichenfolge sortieren und Ordinalsortierung word. Word wird einen kulturabhängiger Vergleich von Zeichenfolgen durchgeführt. Bestimmte nicht alphanumerischen Zeichen möglicherweise bestimmte Gewichtungen zugewiesen werden. Beispielsweise wird dem Bindestrich ("-") ggf. eine sehr geringe Gewichtung zugeordnet, sodass "coop" und "co-op" in einer sortierten Liste nebeneinander angezeigt werden. Zeichenfolge Sortieren ähnelt Word sortiert wird, außer dass es keine Sonderfälle gibt. Somit werden alle nicht alphanumerischen Symbole vor den alphanumerischen Zeichen ein. Ordinalsortierung vergleicht Zeichenfolgen anhand der Unicode-Werte der einzelnen Elemente der Zeichenfolge.

Die StringSort Wert kann nur verwendet werden, mit CompareInfo.Compare und CompareInfo.GetSortKey. ArgumentException wird ausgelöst, wenn die StringSort Wert wird verwendet, mit CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOf, oder CompareInfo.LastIndexOf.

System_CAPS_noteHinweis

Wenn möglich, sollte die Anwendung Zeichenfolgenvergleichsmethoden, die akzeptieren verwenden ein CompareOptions Wert, der die Art der erwarteten Vergleich anzugeben. Als allgemeine Regel benutzerorientierte Vergleiche am besten durch die Verwendung von linguistischen Optionen (mithilfe der aktuellen Kultur), und die Sicherheit Vergleiche geben verarbeitet werden Ordinal oder OrdinalIgnoreCase.

Im folgenden Codebeispiel wird veranschaulicht wie Sortierung mit StringSort unterscheidet sich von der Sortierung ohne StringSort.

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

*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: