public object Clone() { var model = new Model { Blocks = Blocks.Clone(), Points = Points.Clone(), Order = Order.Clone(), Topology = Topology.Clone(), }; if (Distances != null) { var size = Distances.GetLength(0); model.Distances = new double[size][]; for (var i = 0; i < size; i++) { model.Distances[i] = Distances[i].Select(_ => _).ToArray(); } } return(model); }