What’s the difference between the System.Array.CopyTo() and System.Array.Clone()?
As stated in many other answers both methods perform shallow copies of the array. However there are differences and recommendations that have not been addressed yet and that are highlighted in the following lists.
Characteristics of System.Array.Clone:
CopyTo probably because it uses Object.MemberwiseClone;Characteristics of System.Array.CopyTo:
Clone when copying to array of same type;int[] array into an object[];object[] array of boxed int into an int[];int[] into a long[].Stream[] array into a MemoryStream[] (if any element in source array is not convertible to MemoryStream an exception is thrown).Also note, these methods are made available to support ICloneable and ICollection, so if you are dealing with variables of array types you should not use Clone or CopyTo and instead use Array.Copy or Array.ConstrainedCopy. The constrained copy assures that if the copy operation cannot complete successful then the target array state is not corrupted.