public static string ToStringList(StringListDesc desc, IEnumerable <long> values,
                                          Predicate <IEnumerable <long> > writeTerminator = null)
        {
            Contract.Requires(!desc.RequiresTerminator || writeTerminator != null);
            Contract.Ensures(Contract.Result <string>() != null);

            var chars = new List <char>();

            bool needs_separator = false;
            int  radix           = (int)desc.Radix;

            if (values != null)
            {
                foreach (var value in values)
                {
                    if (needs_separator)
                    {
                        chars.Add(desc.Separator);
                    }
                    else
                    {
                        needs_separator = true;
                    }

                    ToStringBuilder(chars, value, radix, desc.Digits);
                }

                if (writeTerminator != null && writeTerminator(values))
                {
                    chars.Add(desc.Terminator);
                }
            }

            return(new string(chars.ToArray()));
        }
Example #2
0
 protected TryParseNumberListBase(StringListDesc desc, string values)
 {
     mDesc   = desc;
     mValues = values;
 }