Exemplo n.º 1
0
 public override IntArray Clone(IntArrayBits bitsPerItem, IntArrayType type)
 {
     if (type == IntArrayType.Sparse || type == IntArrayType.Current)
     {
         if (bitsPerItem <= IntArrayBits.Bits8)
         {
             bitsPerItem = IntArrayBits.Bits8;
         }
         DenseIntArray newValues = _values.Clone(bitsPerItem, IntArrayType.Dense) as DenseIntArray;
         return(new DeltaSparseIntArray(newValues, _deltas, _length));
     }
     else
     {
         DenseIntArray dense = IntArray.New(Length, IntArrayType.Dense, BitsPerItem) as DenseIntArray;
         int           index = 0;
         for (int i = 0; i < _values.Length; ++i)
         {
             index       += _deltas[i];
             dense[index] = _values[i];
         }
         return(dense);
     }
 }