Udostępnij za pośrednictwem


CompareOptions Enum

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

Opcje CompareOptions określają ważność wielkości liter lub konieczność ignorowania typów znaków.

Platforma .NET używa trzech odrębnych sposobów sortowania: sortowania wyrazów, sortowania ciągów i sortowania porządkowego. Sortowanie wyrazów wykonuje porównanie ciągów z uwzględnieniem kultury. Niektóre znaki niefanumeryczne mogą mieć przypisane specjalne wagi. Na przykład łącznik ("-") może mieć przypisaną bardzo małą wagę, tak aby obok siebie na posortowanej liście pojawiały się "coop" i "co-op". Sortowanie ciągów jest podobne do sortowania wyrazów, z tą różnicą, że nie ma żadnych specjalnych przypadków. W związku z tym wszystkie symbole niefanumeryczne pochodzą przed wszystkimi znakami alfanumerycznymi. Sortowanie porządkowe porównuje ciągi na podstawie wartości Unicode każdego elementu ciągu. Aby uzyskać możliwy do pobrania zestaw plików tekstowych zawierających informacje na temat wag znaków używanych w operacjach sortowania i porównywania dla systemów operacyjnych Windows, zobacz Sortowanie tabel wagi. Aby zapoznać się z tabelą wagi sortowania dla systemów Linux i macOS, zobacz domyślną tabelę elementów sortowania Unicode. Określona wersja tabeli wagi sortowania w systemach Linux i macOS zależy od wersji międzynarodowych składników bibliotek Unicode zainstalowanych w systemie. Aby uzyskać informacje na temat wersji ICU i implementowanych wersji Unicode, zobacz Pobieranie ICU.

Wartość StringSort może być używana tylko z elementami CompareInfo.Compare i CompareInfo.GetSortKey. ArgumentException jest zgłaszany, jeśli wartość StringSort jest używana z wartością CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOflub CompareInfo.LastIndexOf.

Uwaga

Jeśli to możliwe, należy użyć metod porównywania ciągów, które akceptują CompareOptions wartość, aby określić oczekiwany rodzaj porównania. Ogólnie rzecz biorąc, porównania dla użytkowników najlepiej nadają się do korzystania z opcji językowych (przy użyciu bieżącej kultury), podczas gdy porównania zabezpieczeń powinny określać Ordinal lub OrdinalIgnoreCase.

Sortowanie wrażliwe na kulturę

Uwaga

Platforma .NET Core uruchomiona tylko w systemach Linux i macOS: zachowanie sortowania dla kultur C i Posix jest zawsze uwzględniane wielkości liter, ponieważ te kultury nie używają oczekiwanej kolejności sortowania Unicode. Zalecamy używanie kultury innej niż C lub Posix do wykonywania operacji sortowania uwzględniających wielkość liter.