StringComparison Sabit listesi

Tanım

Ve yöntemlerinin belirli aşırı yüklemeleri tarafından kullanılacak kültür, durum ve sıralama kurallarını belirtir Compare(String, String) Equals(Object) .Specifies the culture, case, and sort rules to be used by certain overloads of the Compare(String, String) and Equals(Object) methods.

public enum class StringComparison
public enum StringComparison
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum StringComparison
type StringComparison = 
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type StringComparison = 
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.Compare strings using culture-sensitive sort rules and the current culture.

CurrentCultureIgnoreCase 1

Kültüre duyarlı sıralama kurallarını, geçerli kültürü kullanarak dizeleri karşılaştırın ve karşılaştırılan dizelerin durumunu yok sayın.Compare strings using culture-sensitive sort rules, the current culture, and ignoring the case of the strings being compared.

InvariantCulture 2

Kültüre duyarlı sıralama kuralları ve sabit kültür kullanarak dizeleri karşılaştırın.Compare strings using culture-sensitive sort rules and the invariant culture.

InvariantCultureIgnoreCase 3

Kültüre duyarlı sıralama kuralları, sabit kültür kullanarak dizeleri karşılaştırın ve karşılaştırılan dizelerin durumunu yok sayın.Compare strings using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings being compared.

Ordinal 4

Sıra (ikili) sıralama kurallarını kullanarak dizeleri karşılaştırın.Compare strings using ordinal (binary) sort rules.

OrdinalIgnoreCase 5

Sıralı (ikili) sıralama kurallarını kullanarak dizeleri karşılaştırın ve karşılaştırılan dizelerin durumunu yok sayın.Compare strings using ordinal (binary) sort rules and ignoring the case of the strings being compared.

Örnekler

Aşağıdaki örnek, sabit listesinin her bir üyesini kullanarak dört sözcük kümesini karşılaştırır StringComparison .The following example compares four sets of words by using each member of the StringComparison enumeration. Karşılaştırmalar, Ingilizce (Birleşik Devletler) ve Sami, Kuzey (Isveç) kültürlerin kurallarını kullanır.The comparisons use the conventions of the English (United States) and Sami, Northern (Sweden) cultures. "Encyclopædia" ve "Ansiklopedi" dizelerinin en-US kültürüyle eşdeğer kabul edileceğini ancak Sami, Kuzey (Isveç) kültürüne karşılık olmadığına unutmayın.Note that the strings "encyclopædia" and "encyclopedia" are considered equivalent in the en-US culture but not in the Sami, Northern (Sweden) culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      String[] cultureNames = { "en-US", "se-SE" };
      String[] strings1 = { "case",  "encyclopædia",  
                            "encyclopædia", "Archæology" };
      String[] strings2 = { "Case", "encyclopaedia", 
                            "encyclopedia" , "ARCHÆOLOGY" };
      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
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//    
//       encyclopædia = encyclopaedia (CurrentCulture): True
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//    
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//    
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
//    
//    
//    Current Culture: se-SE
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//    
//       encyclopædia = encyclopaedia (CurrentCulture): False
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//    
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//    
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "se-SE" }
      Dim strings1() As String = { "case",  "encyclopædia",  
                                   "encyclopædia", "Archæology" }
      Dim strings2() As String = { "Case", "encyclopaedia", 
                                   "encyclopedia" , "ARCHÆOLOGY" }
      Dim comparisons() As StringComparison = CType([Enum].GetValues(GetType(StringComparison)),
                                           StringComparison())
      
      For Each cultureName In cultureNames
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureName)
         Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name)
         For ctr As Integer = 0 To strings1.GetUpperBound(0)
            For Each comparison In comparisons
               Console.WriteLine("   {0} = {1} ({2}): {3}", strings1(ctr),
                                 strings2(ctr), comparison, 
                                 String.Equals(strings1(ctr), strings2(ctr), comparison))
            Next
            Console.WriteLine()         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    Current Culture: en-US
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'    
'       encyclopædia = encyclopaedia (CurrentCulture): True
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'    
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'    
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
'    
'    
'    Current Culture: se-SE
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'    
'       encyclopædia = encyclopaedia (CurrentCulture): False
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'    
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'    
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True

Açıklamalar

StringComparisonSabit listesi, bir dize karşılaştırmasının geçerli kültürü veya sabit kültür, sözcük veya sıralı sıralama kurallarını kullanması gerekip gerekmediğini belirtmek için kullanılır ve büyük/küçük harfe duyarlı veya büyük/küçük harf duyarsız olmalıdır.The StringComparison enumeration is used to specify whether a string comparison should use the current culture or the invariant culture, word or ordinal sort rules, and be case-sensitive or case-insensitive.

Önemli

,, Veya gibi bir dize karşılaştırma yöntemini çağırdığınızda String.Compare , String.Equals String.IndexOf StringComparison yöntemin gerçekleştirdiği karşılaştırma türünü belirleyebilmeniz için, türünde bir parametre içeren bir aşırı yüklemeyi her zaman çağırmanız gerekir.When you call a string comparison method such as String.Compare, String.Equals, or String.IndexOf, you should always call an overload that includes a parameter of type StringComparison so that you can specify the type of comparison that the method performs. Daha fazla bilgi için bkz. dizeleri kullanmak Için En Iyi uygulamalar.For more information, see Best Practices for Using Strings.

Sözcük sıralama kurallarını kullanan bir işlem, bazı alfasayısal olmayan Unicode karakterlere atanmış özel ağırlıklardaki kültüre duyarlı bir karşılaştırma gerçekleştirir.An operation that uses word sort rules performs a culture-sensitive comparison wherein certain nonalphanumeric Unicode characters might have special weights assigned to them. Sözcük sıralama kurallarını ve belirli bir kültürün kurallarını kullanarak, kısa çizgi ("-"), sıralanmış bir listede "Coop" ve "Co-op" seçeneğinin yanında görünmesini sağlayacak çok küçük bir ağırlığa sahip olabilir.Using word sort rules and the conventions of a specific culture, the hyphen ("-") might have a very small weight assigned to it so that "coop" and "co-op" appear next to each other in a sorted list.

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..NET Core running on Linux and macOS systems only: The collation behavior for the C and Posix cultures is always case-sensitive because these cultures do not use the expected Unicode collation order. 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.We recommend that you use a culture other than C or Posix for performing culture-sensitive, case-insensitive sorting operations.

Sıralı sıralama kuralları kullanan bir işlem, dizedeki her birinin sayısal değerine (Unicode kod noktası) göre bir karşılaştırma gerçekleştirir Char .An operation that uses ordinal sort rules performs a comparison based on the numeric value (Unicode code point) of each Char in the string. Sıralı karşılaştırma hızlıdır, ancak kültür duyarsızdır.An ordinal comparison is fast but culture-insensitive. Unicode karakterlerle başlayan dizeleri sıralamak için sıralı sıralama kuralları kullandığınızda (U +), xxxx değeri YYYY ' den sayısal değilse U + xxxx dizesi U + yyyy dizesinin önüne gelir.When you use ordinal sort rules to sort strings that start with Unicode characters (U+), the string U+xxxx comes before the string U+yyyy if the value of xxxx is numerically less than yyyy.

Karşılaştırmalar hakkında daha fazla bilgi için bkz System.String . sınıf açıklamaları.For more information about comparisons, see the System.String class remarks. Kültür hakkında daha fazla bilgi için bkz System.Globalization.CultureInfo . sınıf açıklamaları.For more information about culture, see the System.Globalization.CultureInfo class remarks. Sıra veya kültüre duyarlı karşılaştırma kurallarının ne zaman kullanılacağını veya sabit kültürün kurallarını kullanma hakkında yönergeler için bkz. dizeleri kullanmak Için En Iyi uygulamalar.For guidelines on when to use ordinal or culture-sensitive comparison rules or the rules of the invariant culture, see Best Practices for Using Strings. Windows işletim sistemleri için sıralama ve karşılaştırma işlemlerinde kullanılan karakter ağırlıklarla ilgili bilgiler içeren bir metin dosyaları kümesi için bkz. sıralama ağırlığı tabloları.For a set of text files that contain information on the character weights used in sorting and comparison operations for Windows operating systems, see Sorting Weight Tables. Linux ve macOS için sıralama ağırlığı tablosu için bkz. varsayılan Unicode harmanlama öğesi tablosu.For the sort weight table for Linux and macOS, see the Default Unicode Collation Element Table.

Şunlara uygulanır

Ayrıca bkz.