Several methods used to copy the contents of an array to another.
Random r = new Random();
int[] pins = new int[4]{ r.Next() % 10, r.Next() % 10,
r.Next() % 10, r.Next() % 10 };
// 1st method
int[] copy = new int[pins.Length];
for (int i = 0; i < pins.Length; i++ )
{
copy[i] = pins[i];
}
// 2nd method
int[] copy2 = new int[pins.Length];
pins.CopyTo(copy2, 0); //starting from index 0 of copy2
// 3rd method
int[] copy3 = new int[pins.Length];
Array.Copy(pins,copy3,copy3.Length);
// 4th method
int[] copy4 = new int[pins.Length];
copy4 = (int[])pins.Clone();
All of them are copying the reference of the original array, not the value.