İngilizce dilinde oku

Aracılığıyla paylaş


StringComparison Sabit listesi

Tanım

ve yöntemlerinin belirli aşırı yüklemeleri Compare(String, String) tarafından kullanılacak kültür, durum ve Equals(Object) sıralama kurallarını belirtir.

C#
public enum StringComparison
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum StringComparison
Devralma
StringComparison
Öznitelikler

Alanlar

CurrentCulture 0

Kültüre duyarlı sıralama kurallarını ve geçerli kültürü kullanarak dizeleri karşılaştırın.

CurrentCultureIgnoreCase 1

Kültüre duyarlı sıralama kurallarını, geçerli kültürü kullanarak ve karşılaştırılan dizelerin büyük/küçük harflerini yoksayarak dizeleri karşılaştırın.

InvariantCulture 2

Kültüre duyarlı sıralama kurallarını ve sabit kültürü kullanarak dizeleri karşılaştırın.

InvariantCultureIgnoreCase 3

Kültüre duyarlı sıralama kurallarını, sabit kültürü kullanarak ve karşılaştırılan dizelerin büyük/küçük harflerini yoksayarak dizeleri karşılaştırın.

Ordinal 4

Sıralı (ikili) sıralama kurallarını kullanarak dizeleri karşılaştırın.

OrdinalIgnoreCase 5

Sıralı (ikili) sıralama kurallarını kullanarak ve karşılaştırılan dizelerin büyük/küçük harflerini yoksayarak dizeleri karşılaştırın.

Örnekler

Aşağıdaki örnek, numaralandırmanın her bir üyesini StringComparison kullanarak üç dize kümesini karşılaştırır. Karşılaştırmalarda İngilizce (Birleşik Devletler), Tayca (Tayland) ve Türkçe (Türkiye) kültürlerinin kuralları kullanılır. "a" ve "a-" dizelerinin "th-TH" kültüründe eşdeğer olarak kabul edildiğini ancak diğer kültürlerde değil, "i" ve "İ" dizelerinin ise "tr-TR" kültüründe büyük/küçük harf yoksayıldığında eşdeğer olarak kabul edilmediğini unutmayın.

C#
using System;
using System.Globalization;
using System.Threading;

public class Example3
{
    public static void Main()
    {
        String[] cultureNames = { "en-US", "th-TH", "tr-TR" };
        String[] strings1 = { "a", "i", "case", };
        String[] strings2 = { "a-", "\u0130", "Case" };
        StringComparison[] comparisons = (StringComparison[])Enum.GetValues(typeof(StringComparison));

        foreach (var cultureName in cultureNames)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureName);
            Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name);
            for (int ctr = 0; ctr <= strings1.GetUpperBound(0); ctr++)
            {
                foreach (var comparison in comparisons)
                    Console.WriteLine("   {0} = {1} ({2}): {3}", strings1[ctr],
                                      strings2[ctr], comparison,
                                      String.Equals(strings1[ctr], strings2[ctr], comparison));

                Console.WriteLine();
            }
            Console.WriteLine();
        }
    }
}
// The example displays the following output:
//    Current Culture: en-US
//       a = a- (CurrentCulture): False
//       a = a- (CurrentCultureIgnoreCase): False
//       a = a- (InvariantCulture): False
//       a = a- (InvariantCultureIgnoreCase): False
//       a = a- (Ordinal): False
//       a = a- (OrdinalIgnoreCase): False
//
//       i = İ (CurrentCulture): False
//       i = İ (CurrentCultureIgnoreCase): False
//       i = İ (InvariantCulture): False
//       i = İ (InvariantCultureIgnoreCase): False
//       i = İ (Ordinal): False
//       i = İ (OrdinalIgnoreCase): False
//
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//
//    Current Culture: th-TH
//       a = a- (CurrentCulture): True
//       a = a- (CurrentCultureIgnoreCase): True
//       a = a- (InvariantCulture): False
//       a = a- (InvariantCultureIgnoreCase): False
//       a = a- (Ordinal): False
//       a = a- (OrdinalIgnoreCase): False
//
//       i = İ (CurrentCulture): False
//       i = İ (CurrentCultureIgnoreCase): False
//       i = İ (InvariantCulture): False
//       i = İ (InvariantCultureIgnoreCase): False
//       i = İ (Ordinal): False
//       i = İ (OrdinalIgnoreCase): False
//
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//
//    Current Culture: tr-TR
//       a = a- (CurrentCulture): False
//       a = a- (CurrentCultureIgnoreCase): False
//       a = a- (InvariantCulture): False
//       a = a- (InvariantCultureIgnoreCase): False
//       a = a- (Ordinal): False
//       a = a- (OrdinalIgnoreCase): False
//
//       i = İ (CurrentCulture): False
//       i = İ (CurrentCultureIgnoreCase): True
//       i = İ (InvariantCulture): False
//       i = İ (InvariantCultureIgnoreCase): False
//       i = İ (Ordinal): False
//       i = İ (OrdinalIgnoreCase): False
//
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True

Açıklamalar

Sabit StringComparison listesi, dize karşılaştırmasının geçerli kültürü mü yoksa sabit kültürü mü, sözcük veya sıralı sıralama kurallarını mı kullanacağını ve büyük/küçük harfe duyarlı mı yoksa büyük/küçük harfe duyarsız mı olacağını belirtmek için kullanılır.

Önemli

, veya String.IndexOfgibi String.CompareString.Equalsbir dize karşılaştırma yöntemini çağırdığınızda, yöntemin gerçekleştirdiği karşılaştırma türünü belirtebilmeniz için her zaman türünde StringComparison bir parametre içeren bir aşırı yüklemeyi çağırmalısınız. Daha fazla bilgi için bkz. Dizeleri Kullanmak için En İyi Yöntemler.

Sözcük sıralama kurallarını kullanan bir işlem, belirli nonalfahanumeric Unicode karakterlerinin kendilerine atanmış özel ağırlıklara sahip olabileceği kültüre duyarlı bir karşılaştırma gerçekleştirir. Sözcük sıralama kurallarını ve belirli bir kültürün kurallarını kullanarak, kısa çizgi ("-") ona çok küçük bir ağırlık atanmış olabilir, böylece "coop" ve "co-op" sıralanmış bir listede yan yana görünür.

Not

Yalnızca Linux ve macOS sistemlerinde çalışan .NET Core: C ve POSIX kültürleri için harmanlama davranışı her zaman büyük/küçük harfe duyarlıdır çünkü bu kültürler beklenen Unicode harmanlama sırasını kullanmaz. Kültüre duyarlı, büyük/küçük harfe duyarsız sıralama işlemleri gerçekleştirmek için C veya POSIX dışında bir kültür kullanmanızı öneririz.

Sıralı sıralama kuralları kullanan bir işlem, dizedeki her Char birinin sayısal değerini (Unicode kod noktası) temel alan bir karşılaştırma gerçekleştirir. Sıralı karşılaştırma hızlı ama kültüre duyarlı değildir. Unicode karakterleriyle (U+) başlayan dizeleri sıralamak için sıralı sıralama kuralları kullandığınızda, xxxx değeri sayısal olarak yy'den küçükse U+xxxx dizesi U+y dizesinden önce gelir.

Karşılaştırmalar hakkında daha fazla bilgi için sınıf açıklamalarına bakın System.String . Kültür hakkında daha fazla bilgi için sınıf açıklamalarına bakın System.Globalization.CultureInfo . Sıralı veya kültüre duyarlı karşılaştırma kurallarının veya sabit kültürün kurallarının ne zaman kullanılacağına ilişkin yönergeler için bkz. Dizeleri Kullanmak için En İyi Yöntemler. Windows işletim sistemleri için sıralama ve karşılaştırma işlemlerinde kullanılan karakter ağırlıkları hakkında bilgi içeren bir dizi metin dosyası için bkz. Ağırlık Tablolarını Sıralama. Linux ve macOS için sıralama ağırlığı tablosu için bkz. Varsayılan Unicode Harmanlama Öğesi Tablosu.

Ş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
.NET Framework 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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.