Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 również zależy od porządku, w jakim języki i kultury używają alfabetu. Na przykład język duński ma znak "Æ", który w alfabecie jest sortowany po "Z". Ponadto porównania mogą być wrażliwe na wielkość liter lub niewrażliwe, a reguły dotyczące wielkości liter mogą różnić się w zależności od kultury. Klasa CompareInfo jest odpowiedzialna za utrzymywanie tych danych porównania ciągów wrażliwych na kulturę oraz wykonywanie operacji na takich ciągach.
Zazwyczaj nie musisz inicjować instancji obiektu CompareInfo bezpośrednio, ponieważ instancja jest używana niejawnie przez wszystkie operacje nienaturalnego porównania ciągów, w tym w wywołaniach metody String.Compare. Jeśli jednak chcesz pobrać CompareInfo obiekt, możesz to zrobić na jeden z następujących sposobów:
Poprzez pobranie wartości CultureInfo.CompareInfo właściwości dla określonej kultury.
Wywołując metodę statyczną GetCompareInfo z nazwą kultury. Umożliwia to późny dostęp do CompareInfo obiektu.
Ignorowane wartości wyszukiwania
Zestawy znaków zawierają znaki ignorowane, które nie są uwzględniane podczas porównywania językowo-kulturowego. 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 znaków zawierających punkty kodu, które nie są brane pod uwagę w operacji ze względu na opcje porównywania. W szczególności opcje CompareOptions.IgnoreNonSpace i CompareOptions.IgnoreSymbols powodują wyszukiwania, w których ignorowane są symbole i znaki łączące, które nie zajmują miejsca.
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 / Notatka
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żywaj ustawień językowych (opartych na bieżącej kulturze) do porównywania ciągów wyświetlanych w interfejsie użytkownika oraz określaj Ordinal lub OrdinalIgnoreCase do porównań pod kątem bezpieczeństwa.