TryParseInt() public static method

public static TryParseInt ( [ s, int &value ) : bool
s [
value int
return bool
Esempio n. 1
0
 protected override bool TryParse(string value, out int parsed)
 {
     return(FlexibleParser.TryParseInt(value, out parsed));
 }
Esempio n. 2
0
        public static IEnumerable <int> ToDiapason([NotNull] this string s, int min, int max)
        {
            if (s == null)
            {
                throw new ArgumentNullException(nameof(s));
            }
            if (max < min)
            {
                throw new ArgumentOutOfRangeException(nameof(max));
            }

            return(s.Split(',', ';').Select(x => x.Trim()).SelectMany(part => {
                int n = part.IndexOf('-'), fromValue, toValue;
                if (n == 0)
                {
                    var m = part.IndexOf('-', n + 1);
                    if (m != -1 && m != 1)
                    {
                        n = m;
                    }
                }

                if (n > 0 && n < part.Length - 1)   // "x-y"
                {
                    if (FlexibleParser.TryParseInt(part.Substring(0, n), out fromValue) &&
                        FlexibleParser.TryParseInt(part.Substring(n + 1), out toValue))
                    {
                        fromValue = Math.Max(fromValue, min);
                        return Enumerable.Range(fromValue, 1 + Math.Min(toValue, max) - fromValue);
                    }
                }
                else if (n < 0)     // "x"
                {
                    if (FlexibleParser.TryParseInt(part, out fromValue) && fromValue >= min && fromValue <= max)
                    {
                        return new[] { fromValue };
                    }
                }
                else if (part.Length == 1)     // "-"
                {
                    return Enumerable.Range(min, 1 + max - min);
                }
                else if (n == part.Length - 1)     // "x-"
                {
                    if (FlexibleParser.TryParseInt(part.Substring(0, n), out fromValue))
                    {
                        fromValue = Math.Max(fromValue, min);
                        return Enumerable.Range(fromValue, 1 + max - fromValue);
                    }
                }
                else     // "-x"
                {
                    if (FlexibleParser.TryParseInt(part.Substring(n + 1), out toValue))
                    {
                        return Enumerable.Range(min, 1 + Math.Min(toValue, max) - min);
                    }
                }

                return new int[0];
            }));
        }