public static Boolean Compare(PartitionFunction origen, PartitionFunction destino)
 {
     if (destino == null) throw new ArgumentNullException("destino");
     if (origen == null) throw new ArgumentNullException("origen");
     if (!origen.Type.Equals(destino.Type)) return false;
     if (origen.Size != destino.Size) return false;
     if (origen.Precision != destino.Precision) return false;
     if (origen.Scale != destino.Scale) return false;
     return origen.IsBoundaryRight == destino.IsBoundaryRight;
 }
 public new PartitionFunction Clone()
 {
     var item = new PartitionFunction
     {
         Id = Id,
         IsBoundaryRight = IsBoundaryRight,
         Name = Name,
         Precision = Precision,
         Scale = Scale,
         Size = Size,
         Type = Type
     };
     Values.ForEach(value => item.Values.Add(value));
     return item;
 }