public T Touch(T value)
 {
     if (!dim.Contains(value))
     {
         throw new ArgumentException($"{value} in not contained in {dim.Name}");
     }
     return(value);
 }
 public T Touch(T value)
 {
     if (!dim.Contains(value))
     {
         dim.Add(value);
     }
     return(value);
 }
Example #3
0
 public TValue GetValue(TRow row, TColumn column)
 {
     if (!Rows.Contains(row))
     {
         throw new ArgumentException();
     }
     if (!Columns.Contains(column))
     {
         throw new ArgumentException();
     }
     if (!data.ContainsKey(row))
     {
         return(default(TValue));
     }
     if (!data[row].ContainsKey(column))
     {
         return(default(TValue));
     }
     return(data[row][column]);
 }
Example #4
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");
        }