配列は参照型です。 そのため、配列の変数に代入を行う場合、配列がまるごとコピーされて代入されるのではなく、配列への参照が代入されるだけとなる点に注意が必要です。

次の例のように、配列の変数に代入を行っても配列の実体は一つであるため、異なる変数を経由した変更でも実際に行われる変更は同一の配列に対するものとなります。

配列の代入
using System;

class Sample {
  static void Main()
  {
    // 配列を作成してarr1に代入
    string[] arr1 = {"Alice", "Bob", "Charlie"};

    // arr1の各要素を表示
    Console.WriteLine("arr1[0] = {0}", arr1[0]);
    Console.WriteLine("arr1[1] = {0}", arr1[1]);
    Console.WriteLine("arr1[2] = {0}", arr1[2]);
    Console.WriteLine();

    // arr1に代入されている配列への参照をarr2に代入
    var arr2 = arr1;

    arr2[1] = "Dave"; // arr2の1番目の値を変更

    // arr1の各要素を表示
    Console.WriteLine("arr1[0] = {0}", arr1[0]);
    Console.WriteLine("arr1[1] = {0}", arr1[1]);
    Console.WriteLine("arr1[2] = {0}", arr1[2]);
  }
}
実行結果
arr1[0] = Alice
arr1[1] = Bob
arr1[2] = Charlie

arr1[0] = Alice
arr1[1] = Dave
arr1[2] = Charlie

配列のコピーを行いたい場合はArray.CloneメソッドまたはArray.Copyメソッドを使います。