Esempio n. 1
0
        private static ComparableList <StringElement> convertString(string str)
        {
            var           result        = new ComparableList <StringElement>();
            StringBuilder numberBuilder = new StringBuilder();

            foreach (char ch in str)
            {
                if (!Char.IsDigit(ch))
                {
                    if (numberBuilder.Length > 0)
                    {
                        result.Add(new StringElement(int.Parse(numberBuilder.ToString())));
                        numberBuilder.Clear();
                    }
                    if (ch != ' ')
                    {
                        result.Add(new StringElement(ch));
                    }
                }
                else
                {
                    numberBuilder.Append(ch);
                }
            }
            if (numberBuilder.Length > 0)
            {
                result.Add(new StringElement(int.Parse(numberBuilder.ToString())));
            }
            return(result);
        }
Esempio n. 2
0
        public int CompareTo(ComparableList <T> other)
        {
            var  enu1 = this.GetEnumerator();
            var  enu2 = other.GetEnumerator();
            bool enu1HasNext = true, enu2HasNext = true;

            while (true)
            {
                if (!enu1.MoveNext())
                {
                    enu1HasNext = false;
                }
                if (!enu2.MoveNext())
                {
                    enu2HasNext = false;
                    break;
                }
                if (!enu1HasNext)
                {
                    break;
                }
                int val = enu1.Current.CompareTo(enu2.Current);
                if (val != 0)
                {
                    return(val);
                }
            }
            if (enu1HasNext && !enu2HasNext)
            {
                return(1);
            }
            if (!enu1HasNext && enu2HasNext)
            {
                return(-1);
            }
            return(0);
        }
Esempio n. 3
0
 public ComparableString(string value)
 {
     this.value = convertString(value);
 }