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(); }
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) { }