The copy and cloe is being at the string level, there is another way of dealing array and that is using Array class

//csc array_clone_1.cs

using System;
namespace array_clone
{
public class array_clone
{
public void process_clone(string title, string[] array)
{
Console.WriteLine(title);
foreach (string s in array) {
Console.Write ("{0} ", s);
}
Console.WriteLine();
}
public void alter_clone(string title, string[] array)
{
string[] array3 = {"Player_4", "Player_5", "Player_6"};
array[2] = array3[1];
Console.WriteLine("--alter_clone--");
foreach (string s in array) {
Console.Write ("{0} ", s);
}
}
}
class test {
public static void Main() {
string[] array1 = {"Player_1", "Player_2", "Player_3"};
string[] array2 = (string[]) array1.Clone();
array_clone a_c = new array_clone();
a_c.process_clone("Original array: ", array1);
a_c.process_clone("Cloned array: ", array2);
a_c.alter_clone("Cloned altered : ", array2);
Console.ReadLine();
}}
}