Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
 /// <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();
 }