Wykonywanie niezależnych od kultury operacji na ciągach

Operacje ciągów wrażliwych na kulturę są korzystne, jeśli tworzysz aplikacje przeznaczone do wyświetlania wyników użytkownikom na podstawie kultury. Domyślnie metody wrażliwe na kulturę uzyskują kulturę do użycia z CurrentCulture właściwości bieżącego wątku.

Czasami operacje ciągów wrażliwych na kulturę nie są pożądanym zachowaniem. Używanie operacji, w których jest uwzględniana kultura, gdy wyniki powinny być niezależne od kultury, może spowodować, że kod aplikacji przestanie działać w przypadku kultur z niestandardowymi mapowaniami wielkości liter i regułami sortowania. Aby zapoznać się z przykładem, zobacz sekcję Porównanie ciągów, która używa bieżącej kultury w temacie Najlepsze rozwiązania dotyczące używania ciągów.

To, czy w operacjach na ciągach powinna być uwzględniana kultura, zależy od tego, jak aplikacja używa wyników. W operacjach na ciągach, które wyświetlają wyniki użytkownikowi, zazwyczaj powinna być uwzględniana kultura. Na przykład jeśli aplikacja wyświetla posortowaną listę zlokalizowanych ciągów w polu listy, aplikacja powinna wykonać sortowanie z uwzględnieniem kultury.

W wynikach operacji na ciągach, które są używane wewnętrznie, zazwyczaj nie powinna być uwzględniana kultura. Ogólnie, jeśli aplikacja wykonuje operacje na nazwach plików, formatach trwałości lub informacjach symbolicznych, które nie są wyświetlane użytkownikowi, wyniki operacji na ciągach nie powinny ulegać zmianie w zależności od kultury. Na przykład jeśli aplikacja porównuje ciąg w celu ustalenia, czy jest on rozpoznawanym tagiem XML, w porównaniu nie powinna być uwzględniana kultura. Ponadto jeśli decyzja dotycząca zabezpieczeń jest oparta na wyniku operacji porównywania ciągów lub zmiany wielkości liter, operacja powinna być niewrażliwa na kulturę, aby upewnić się, że wynik nie ma wpływu na wartość CurrentCulture.

Większość metod platformy .NET, które domyślnie wykonują operacje ciągów wrażliwych na kulturę, zapewniają również przeciążenie, które pozwala zagwarantować wyniki bez uwzględniania kultury. Te przeciążenia, które przyjmują CultureInfo argument, pozwalają wyeliminować różnice kulturowe w mapowaniach przypadków i reguł sortowania. W przypadku operacji ciągów bez uwzględniania kultury określ kulturę jako CultureInfo.InvariantCulture.

W tym obszarze

W artykułach w tej sekcji pokazano, jak wykonywać operacje ciągów bez uwzględniania kultury przy użyciu metod platformy .NET, które są domyślnie wrażliwe na kulturę.

Przeprowadzanie porównań ciągów bez uwzględniania kultury
Opisuje sposób użycia String.Compare metod i String.CompareTo do przeprowadzania porównań ciągów bez uwzględniania kultury.

Przeprowadzanie zmian wielkości liter bez uwzględniania kultury
Opisuje sposób używania String.ToUppermetod , , Char.ToUpperString.ToLoweri Char.ToLower do przeprowadzania zmian wielkości liter bez uwzględniania kultury.

Wykonywanie operacji ciągów bez uwzględniania kultury w kolekcjach
Opisuje sposób używania CaseInsensitiveComparerklasy SortedListArrayList.Sort , CaseInsensitiveHashCodeProvider i CollectionsUtil.CreateCaseInsensitiveHashtable do wykonywania operacji bez uwzględniania kultury w kolekcjach.

Wykonywanie operacji ciągów bez uwzględniania kultury w tablicach
Opisuje sposób używania Array.Sort metod i Array.BinarySearch do wykonywania operacji bez uwzględniania kultury w tablicach.

Zobacz też