/// <summary>
 /// Create a valueset with one time step and a number of element values.
 /// </summary>
 public TimeSpaceValueSet(IEnumerable <T> values1D)
 {
     _values2D = new ListIList <T>(1)
     {
         new List <T>()
     };
     foreach (T value in values1D)
     {
         _values2D[0].Add(value);
     }
 }
 /// <summary>
 /// Create a valueset based on the provided values.
 /// </summary>
 public TimeSpaceValueSet(IList <IList <T> > values)
 {
     _values2D = new ListIList <T>(values.Count);
     for (int i = 0; i < values.Count; i++)
     {
         var ilist = new List <T>(values[i].Count);
         foreach (T value in values[i])
         {
             ilist.Add(value);
         }
         _values2D.Add(ilist);
     }
 }