public CompoundFormatInfo(string defaultSeparator,
                                  string lastNumberFormat, CompoundZeroHandling zeroHandling, bool useLongNames, bool discardLastFraction,
                                  IEnumerable <Info> formatInfo)
        {
            this.ZeroHandling        = zeroHandling;
            this.UseLongNames        = useLongNames;
            this.LastNumberFormat    = lastNumberFormat;
            this.DiscardLastFraction = discardLastFraction;
            this.defaultSeparator    = defaultSeparator;

            // sort the units by their ratio, from biggest to smallest
            var formatInfoList = new List <Info>(formatInfo);

            formatInfoList.Sort((a, b) => a.Unit.CompareTo(b.Unit));
            formatInfoList.Reverse();
            this.formatInfo = formatInfoList.ToArray();
        }
Exemplo n.º 2
0
        public static string FormatCompound <T>(this T q, ICollection <Unit <T> > units,
                                                string separator = " ",
                                                CompoundZeroHandling zeroHandling = CompoundZeroHandling.RemoveAny,
                                                string lastNumberFormat           = null, bool longNames = false, bool discardLastFraction = false) where T : unmanaged, IQuantity <T>
        {
            // compose info array
            var infolist = new List <CompoundFormatInfo <T> .Info>();

            foreach (var unit in units)
            {
                infolist.Add(new CompoundFormatInfo <T> .Info(unit));
            }

            var formatInfo = new CompoundFormatInfo <T>(separator,
                                                        lastNumberFormat, zeroHandling, longNames, discardLastFraction, infolist.ToArray());

            return(q.FormatCompound(formatInfo));
        }
 public CompoundFormatInfo(string defaultSeparator,
                           string lastNumberFormat, CompoundZeroHandling zeroHandling, bool useLongNames, bool discardLastFraction,
                           params Info[] formatInfo) : this(defaultSeparator, lastNumberFormat, zeroHandling, useLongNames, discardLastFraction,
                                                            (IEnumerable <Info>)formatInfo)
 {
 }