Esempio n. 1
0
 public T Touch(T value)
 {
     if (!dim.Contains(value))
     {
         dim.Add(value);
     }
     return(value);
 }
Esempio n. 2
0
        public T Touch(T value)
        {
            if (dim.Contains(value))
            {
                return(value);
            }

            if (dim.Values.Count == 0)
            {
                dim.Add(value);
                return(value);
            }

            if (value.CompareTo(dim.Values[0]) < 0)
            {
                int position = 0;
                while (value.CompareTo(dim.Values[position]) < 0)
                {
                    dim.Insert(value, position);
                    position++;
                    value = getNext(value);
                }
                return(value);
            }

            if (value.CompareTo(dim.Values[dim.Values.Count - 1]) > 0)
            {
                var v = dim.Values[dim.Values.Count - 1];
                while (v.CompareTo(value) < 0)
                {
                    v = getNext(v);
                    dim.Add(v);
                }
                return(value);
            }

            throw new ArgumentException($"{value} is not greater that last and smaller that 0-th element, yet it is not found");
        }