Klasa CompareInfo

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

Konwencje porównywania i sortowania danych różnią się od kultury do kultury. Na przykład kolejność sortowania może być oparta na fonetyce lub na wizualnej reprezentacji znaków. W językach wschodnioazjatyckich znaki są sortowane według pociągnięcia i radykalności ideografów. Sortowanie zależy również od języków kolejności i kultur używanych dla alfabetu. Na przykład język duński ma znak "Æ", który sortuje po znaku "Z" w alfabecie. Ponadto porównania mogą być wrażliwe na wielkość liter lub bez uwzględniania wielkości liter, a reguły wielkości liter mogą również różnić się od kultury. Klasa CompareInfo jest odpowiedzialna za utrzymywanie tych danych porównania ciągów wrażliwych na kulturę i wykonywanie operacji ciągów wrażliwych na kulturę.

Zazwyczaj nie trzeba utworzyć wystąpienia CompareInfo obiektu bezpośrednio, ponieważ jeden jest używany niejawnie przez wszystkie operacje porównania ciągów nieumyślnych, w tym wywołania String.Compare metody . Jeśli jednak chcesz pobrać CompareInfo obiekt, możesz to zrobić na jeden z następujących sposobów:

Ignorowane wartości wyszukiwania

Zestawy znaków zawierają znaki do pominięcia. Są to znaki nieuwzględniane podczas porównywania pod względem językowym lub z uwzględnieniem ustawień kulturowych. Metody porównania, takie jak IndexOf i LastIndexOf nie uwzględniają takich znaków podczas porównywania uwzględniającego kulturę. Znaki, które można zignorować, obejmują:

  • String.Empty. Metody porównywania uwzględniające kulturę zawsze znajdą pusty ciąg na początku (zero indeksu) przeszukiwanego ciągu.

  • Znak lub ciąg składający się z znaków z punktami kodu, które nie są brane pod uwagę w operacji ze względu na opcje porównania, w szczególności CompareOptions.IgnoreNonSpace opcje i CompareOptions.IgnoreSymbols generują wyszukiwania, w których symbole i nieprzestępce łączenia znaków są ignorowane.

  • Ciąg z punktami kodu, które nie mają znaczenia językowego. Na przykład łącznik miękki (U+00AD) jest zawsze ignorowany w porównywaniu ciągów uwzględniających kulturę.

Zagadnienia dotyczące zabezpieczeń

Jeśli decyzja dotycząca zabezpieczeń zależy od porównania ciągów lub zmiany wielkości liter, należy użyć InvariantCulture właściwości , aby upewnić się, że zachowanie jest spójne, niezależnie od ustawień kultury systemu operacyjnego.

Uwaga

Jeśli to możliwe, należy użyć metod porównania ciągów, które mają parametr typu CompareOptions , aby określić rodzaj oczekiwanego porównania. Ogólnie rzecz biorąc, użyj opcji językowych (przy użyciu bieżącej kultury) do porównywania ciągów wyświetlanych w interfejsie użytkownika i określania Ordinal lub OrdinalIgnoreCase porównywania zabezpieczeń.