Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

Basics > 15 Die verfügbaren Kulturen auslesen - Pg. 57

>> Basics 57 Basics // CultureInfo-Objekt für die australische Kultur erzeugen // und dem aktuellen Thread zuweisen Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-AU"); // Als Beispiel einige Zahlen und Datumswerte formatiert ausgeben double number = 1234.5678; Console.WriteLine("Zahl im australischen Format: {0:#,#0.00}", number); DateTime now = DateTime.Now; Console.WriteLine("Datum im australischen Format: {0}", now.ToString()); Listing 15: Umstellen der aktuellen Kultur Das Beispiel erfordert den Import der Namensräume System , System.Threading und System.Glo- balization . Abbildung 13: Formatierung einer Zahl und eines Datumswerts im australischen Format 15 Die verfügbaren Kulturen auslesen Die im System verfügbaren Kulturen erhalten Sie über die statische GetCultures -Methode der CultureInfo -Klasse (aus dem Namensraum System.Globalization ) in Form eines CultureInfo - Arrays. Diese Methode erwartet einen oder mehrere Werte der CultureTypes -Aufzählung, die festlegt, welche Kulturen zurückgegeben werden sollen. Der Wert NeutralCultures steht zum Beispiel für alle neutralen Kulturen (zum Beispiel de), SpecificCultures steht für alle spezifi- schen (zum Beispiel de-DE). Daneben können Sie zum Beispiel über InstalledWin32Cultures die Kulturen abfragen, die auch in Windows installiert sind. Ein kleiner Nachteil des zurückerhaltenen CultureInfo -Arrays ist, dass dieses nicht sortiert ist. Dieses Problem können Sie natürlich lösen. Ich habe dazu in Listing 16 die Klasse CultureCom- parer implementiert, die die IComparer -Schnittstelle implementiert. Über eine Instanz dieser Klasse wird das in den Methoden GetNeutralAndSpecificCultures , GetSpecificCultures und GetNeutralCultures ermittelte CultureInfo -Array nach dem englischen Namen der Kultur sor- tiert. Zum Kompilieren der Klasse und der Methoden in Listing 16 müssen Sie die Namensräume System , System.Collections.Generic und System.Globalization importieren. /* Vergleichsklasse für Kulturen */ internal class CultureComparer : IComparer<CultureInfo> Listing 16: Methoden zum sortierten Auslesen der verfügbaren Kulturen