/// <summary> /// Creates a string pool which contains the most commonly-used strings within the given set /// of zones first. This will allow them to be more efficiently represented when we write them out for real. /// </summary> private static List <string> CreateOptimizedStringPool( IEnumerable <DateTimeZone> zones, IEnumerable <TzdbZoneLocation> zoneLocations, IEnumerable <TzdbZone1970Location> zone1970Locations, WindowsZones cldrWindowsZones) { var optimizingWriter = new StringPoolOptimizingFakeWriter(); foreach (var zone in zones) { optimizingWriter.WriteString(zone.Id); WriteZone(zone, optimizingWriter); } if (zoneLocations != null) { foreach (var location in zoneLocations) { location.Write(optimizingWriter); } } if (zone1970Locations != null) { foreach (var location in zone1970Locations) { location.Write(optimizingWriter); } } cldrWindowsZones.Write(optimizingWriter); return(optimizingWriter.CreatePool()); }
/// <summary> /// Creates a string pool which contains the most commonly-used strings within the given set /// of zones first. This will allow them to be more efficiently represented when we write them out for real. /// </summary> private static List<string> CreateOptimizedStringPool( IEnumerable<DateTimeZone> zones, IEnumerable<TzdbZoneLocation> zoneLocations, IEnumerable<TzdbZone1970Location> zone1970Locations, WindowsZones cldrWindowsZones) { var optimizingWriter = new StringPoolOptimizingFakeWriter(); foreach (var zone in zones) { optimizingWriter.WriteString(zone.Id); WriteZone(zone, optimizingWriter); } if (zoneLocations != null) { foreach (var location in zoneLocations) { location.Write(optimizingWriter); } } if (zone1970Locations != null) { foreach (var location in zone1970Locations) { location.Write(optimizingWriter); } } cldrWindowsZones.Write(optimizingWriter); return optimizingWriter.CreatePool(); }