İngilizce dilinde oku

Aracılığıyla paylaş


CompareOptions Sabit listesi

Tanım

ile CompareInfokullanılacak dize karşılaştırma seçeneklerini tanımlar.

Bu sabit listesi, üyeleri için bit düzeyinde karşılaştırmayı destekler.

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
Devralma
CompareOptions
Öznitelikler

Alanlar

Name Değer Description
IgnoreCase 1

Dize karşılaştırmasının büyük/küçük harf durumunu yoksayması gerektiğini gösterir.

IgnoreKanaType 8

Dize karşılaştırmasının Kana türünü yoksayması gerektiğini gösterir. Kana türü, Japonca dilinde fonetik sesleri temsil eden Japonca hiragana ve katakana karakterlerini ifade eder. Hiragana yerel Japonca ifadeler ve sözcükler için kullanılırken katakana ise "bilgisayar" veya "İnternet" gibi diğer dillerden ödünç alınan sözcükler için kullanılır. Fonetik ses hem hiragana hem de katakana ile ifade edilebilir. Bu değer seçilirse, bir sesin hiragana karakteri aynı ses için katakana karakterine eşit olarak kabul edilir.

IgnoreNonSpace 2

Dize karşılaştırmasının aksan gibi saydam olmayan birleştirme karakterlerini yoksayması gerektiğini gösterir. Unicode Standart, karakter birleştirmeyi, yeni bir karakter oluşturmak için temel karakterlerle birleştirilen karakterler olarak tanımlar. Birleştirilemeyen karakterler, işlenirken tek başına bir aralık konumu kaplamaz.

IgnoreSymbols 4

Dize karşılaştırmasının boşluk karakterleri, noktalama işaretleri, para birimi simgeleri, yüzde işareti, matematiksel simgeler, ve işareti gibi simgeleri yoksayması gerektiğini gösterir.

IgnoreWidth 16

Dize karşılaştırmasının karakter genişliğini yoksayması gerektiğini gösterir. Örneğin, Japonca katakana karakterleri tam genişlikte veya yarım genişlikte yazılabilir. Bu değer seçilirse, tam genişlikli olarak yazılan katakana karakterleri, yarım genişlikli olarak yazılan aynı karakterlere eşit olarak kabul edilir.

None 0

Dize karşılaştırmaları için varsayılan seçenek ayarlarını gösterir.

Ordinal 1073741824

Dize karşılaştırmasının dizenin ardışık Unicode UTF-16 kodlanmış değerlerini kullanması gerektiğini gösterir (kod birimi karşılaştırmasına göre kod birimi), hızlı bir karşılaştırmaya yol açar, ancak kültüre duyarsızdır. XXXX16 kod birimiyle başlayan bir dize, XXXX16 YYYY16'dan küçükse YYYY16 ile başlayan bir dizeden önce gelir. Bu değer diğer CompareOptions değerlerle birleştirilemez ve tek başına kullanılmalıdır.

OrdinalIgnoreCase 268435456

Dize karşılaştırması büyük/küçük harf durumunu yoksaymalı ve ardından sıralı bir karşılaştırma gerçekleştirmelidir. Bu teknik sabit kültürü kullanarak dizeyi büyük harfe dönüştürmeye ve ardından sonuç üzerinde sıralı bir karşılaştırma yapmaya eşdeğerdir.

StringSort 536870912

Dize karşılaştırmasının dize sıralama algoritmasını kullanması gerektiğini gösterir. Bir dize sıralamasında, kısa çizgi ve kesme işareti ile diğer alfasayısal olmayan simgeler alfasayısal karakterlerden önce gelir.

Örnekler

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

*/

Açıklamalar

Bu API hakkında daha fazla bilgi için bkz . CompareOptions için ek API açıklamaları.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.