Exemplo n.º 1
0
        private bool TryParseCore(
            NumParseData npData)
        {
            bool retVal = true;

            if (npData.Char == '-')
            {
                string str = npData.ArgStr.Substring(npData.StartIdx, npData.Idx - npData.StartIdx);
                npData.StartIdx = npData.Idx;

                int val;

                if (int.TryParse(str, out val))
                {
                    npData.Values.Add(val);
                }
                else
                {
                    retVal = false;
                }
            }
            else if (!(char.IsWhiteSpace(npData.Char) || char.IsLetterOrDigit(npData.Char)))
            {
                retVal = false;
            }

            return(retVal);
        }
Exemplo n.º 2
0
        private bool TryParseCore(DateTimeParseData data)
        {
            var npData = new NumParseData
            {
                ArgStr   = data.ArgStr,
                StartIdx = data.Idx,
                Idx      = data.Idx,
                Char     = data.ArgStr[data.Idx],
                Values   = new List <int>()
            };

            while (data.Idx < data.Len && !char.IsLetter(npData.Char) && data.IsValid)
            {
                npData.Char = data.ArgStr[data.Idx];

                data.IsValid = TryParseCore(npData);
                npData.Idx++;
            }

            data.Idx  = npData.Idx;
            data.Nums = npData.Values.ToArray();

            data.IsValid = data.IsValid && data.Nums.Any();
            return(data.IsValid);
        }